Fixed #26616 -- Clarified model usage in AppConfig.ready().
This commit is contained in:
parent
4773ed2e31
commit
ff445f4c19
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue