1
0
mirror of https://github.com/django/django.git synced 2025-04-10 08:19:39 +00:00

[1.10.x] Fixed #26616 -- Clarified model usage in AppConfig.ready().

Backport of ff445f4c19a0fdf6696c99efefa38b1409b8709f from master
This commit is contained in:
Kevin Christopher Henry 2016-08-11 04:59:19 -04:00 committed by Tim Graham
parent f6af24fe40
commit 3db01b2d58

View File

@ -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