summaryrefslogtreecommitdiff
path: root/docs/ref
diff options
context:
space:
mode:
authorZbigniew Siciarz <antyqjon@gmail.com>2014-02-15 17:27:12 +0100
committerTim Graham <timograham@gmail.com>2014-02-15 13:50:31 -0500
commit94b5bc361aef2ae2d46a49dbfe32d9271c185800 (patch)
tree1c1dd3985203cde057b970832b3c2b2572630ff0 /docs/ref
parentcd7f37b6471dc947f06a40149e6c9789531e50a0 (diff)
Fixed #22002 -- Documented avoiding database interaction in AppConfig.ready().
Thanks Marc Tamlyn for the suggestion.
Diffstat (limited to 'docs/ref')
-rw-r--r--docs/ref/applications.txt13
1 files changed, 13 insertions, 0 deletions
diff --git a/docs/ref/applications.txt b/docs/ref/applications.txt
index be86f42305..2a5128ebb8 100644
--- a/docs/ref/applications.txt
+++ b/docs/ref/applications.txt
@@ -221,6 +221,19 @@ Methods
def ready(self):
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 packages as apps (Python 3.3+)