Fixed #22002 -- Documented avoiding database interaction in AppConfig.ready().
Thanks Marc Tamlyn for the suggestion.
This commit is contained in:
parent
cd7f37b647
commit
94b5bc361a
1
AUTHORS
1
AUTHORS
|
@ -561,6 +561,7 @@ answer newbie questions, and generally made Django that much better:
|
||||||
Peter Sheats <sheats@gmail.com>
|
Peter Sheats <sheats@gmail.com>
|
||||||
Pete Shinners <pete@shinners.org>
|
Pete Shinners <pete@shinners.org>
|
||||||
Leo Shklovskii
|
Leo Shklovskii
|
||||||
|
Zbigniew Siciarz <zbigniew@siciarz.net>
|
||||||
jason.sidabras@gmail.com
|
jason.sidabras@gmail.com
|
||||||
Mikołaj Siedlarek <mikolaj.siedlarek@gmail.com>
|
Mikołaj Siedlarek <mikolaj.siedlarek@gmail.com>
|
||||||
Karol Sikora <elektrrrus@gmail.com>
|
Karol Sikora <elektrrrus@gmail.com>
|
||||||
|
|
|
@ -221,6 +221,19 @@ Methods
|
||||||
def ready(self):
|
def ready(self):
|
||||||
MyModel = self.get_model('MyModel')
|
MyModel = self.get_model('MyModel')
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
|
||||||
|
Although you can access model classes as described above, avoid
|
||||||
|
interacting with the database in your :meth:`ready()` implementation.
|
||||||
|
This includes model methods that execute queries
|
||||||
|
(:meth:`~django.db.models.Model.save()`,
|
||||||
|
:meth:`~django.db.models.Model.delete()`, manager methods etc.), and
|
||||||
|
also raw SQL queries via ``django.db.connection``. Your
|
||||||
|
:meth:`ready()` method will run during startup of every management
|
||||||
|
command. For example, even though the test database configuration is
|
||||||
|
separate from the production settings, ``manage.py test`` would still
|
||||||
|
execute some queries against your **production** database!
|
||||||
|
|
||||||
.. _namespace package:
|
.. _namespace package:
|
||||||
|
|
||||||
Namespace packages as apps (Python 3.3+)
|
Namespace packages as apps (Python 3.3+)
|
||||||
|
|
|
@ -196,6 +196,11 @@ advanced settings.
|
||||||
your tests. *It is a bad idea to have such import-time database queries in
|
your tests. *It is a bad idea to have such import-time database queries in
|
||||||
your code* anyway - rewrite your code so that it doesn't do this.
|
your code* anyway - rewrite your code so that it doesn't do this.
|
||||||
|
|
||||||
|
.. versionadded:: 1.7
|
||||||
|
|
||||||
|
This also applies to customized implementations of
|
||||||
|
:meth:`~django.apps.AppConfig.ready()`.
|
||||||
|
|
||||||
.. seealso::
|
.. seealso::
|
||||||
|
|
||||||
The :ref:`advanced multi-db testing topics <topics-testing-advanced-multidb>`.
|
The :ref:`advanced multi-db testing topics <topics-testing-advanced-multidb>`.
|
||||||
|
|
Loading…
Reference in New Issue