summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/ref/signals.txt9
-rw-r--r--docs/topics/signals.txt7
2 files changed, 16 insertions, 0 deletions
diff --git a/docs/ref/signals.txt b/docs/ref/signals.txt
index d1f5f3c78f..b41b3f63dd 100644
--- a/docs/ref/signals.txt
+++ b/docs/ref/signals.txt
@@ -509,6 +509,15 @@ For example, you could register a callback in an
def ready(self):
post_migrate.connect(my_callback, sender=self)
+.. note::
+
+ If you provide an :class:`~django.apps.AppConfig` instance as the sender
+ argument, please ensure that the signal is registered in
+ :meth:`~django.apps.AppConfig.ready`. ``AppConfig``\s are recreated for
+ tests that run with a modified set of :setting:`INSTALLED_APPS` (such as
+ when settings are overridden) and such signals should be connected for each
+ new ``AppConfig`` instance.
+
post_syncdb
-----------
diff --git a/docs/topics/signals.txt b/docs/topics/signals.txt
index cb1d067c3c..dab29ba4ec 100644
--- a/docs/topics/signals.txt
+++ b/docs/topics/signals.txt
@@ -146,6 +146,13 @@ Now, our ``my_callback`` function will be called each time a request finishes.
versions of Django, signal registration usually happened in the
``models`` module.
+.. note::
+
+ The :meth:`~django.apps.AppConfig.ready` method may be executed more than
+ once during testing, so you may want to :ref:`guard your signals from
+ duplication <preventing-duplicate-signals>`, especially if you're planning
+ to send them within tests.
+
.. _connecting-to-specific-signals:
Connecting to signals sent by specific senders