summaryrefslogtreecommitdiff
path: root/docs/ref/applications.txt
diff options
context:
space:
mode:
authorKevin Christopher Henry <k@severian.com>2016-08-11 04:59:19 -0400
committerTim Graham <timograham@gmail.com>2016-08-17 10:34:51 -0400
commitff445f4c19a0fdf6696c99efefa38b1409b8709f (patch)
tree8ace649dbf46399694412010782cab84523bd3fb /docs/ref/applications.txt
parent4773ed2e313c67ed9d4a77d5fe24ca7ed34172cf (diff)
Fixed #26616 -- Clarified model usage in AppConfig.ready().
Diffstat (limited to 'docs/ref/applications.txt')
-rw-r--r--docs/ref/applications.txt20
1 files changed, 17 insertions, 3 deletions
diff --git a/docs/ref/applications.txt b/docs/ref/applications.txt
index d1183ce4bf..2340951542 100644
--- a/docs/ref/applications.txt
+++ b/docs/ref/applications.txt
@@ -239,13 +239,27 @@ Methods
as registering signals. It is called as soon as the registry is fully
populated.
- You cannot import models in modules that define application configuration
- classes, but you can use :meth:`get_model` to access a model class by
- name, like this::
+ Although you can't import models at the module-level where
+ :class:`~django.apps.AppConfig` classes are defined, you can import them in
+ ``ready()``, using either an ``import`` statement or
+ :meth:`~AppConfig.get_model`.
+
+ If you're registering :mod:`model signals <django.db.models.signals>`, you
+ can refer to the sender by its string label instead of using the model
+ class itself.
+
+ Example::
+
+ from django.db.models.signals import pre_save
def ready(self):
+ # importing model classes
+ from .models import MyModel # or...
MyModel = self.get_model('MyModel')
+ # registering signals with the model's string label
+ pre_save.connect(receiver, sender='app_label.MyModel')
+
.. warning::
Although you can access model classes as described above, avoid