Commit 3ac39bb6 authored by wrwrwr's avatar wrwrwr Committed by Tim Graham
Browse files

[1.7.x] Added notes on registering signals in ready() and using dispatch_uid.

Refs #23641.

Backport of d66bda60 from master
parent e3ea5d4d
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -512,6 +512,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
-----------

+7 −0
Original line number Diff line number Diff line
@@ -153,6 +153,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