Commit b4b63b38 authored by Claude Paroz's avatar Claude Paroz
Browse files

[1.6.x] Fixed #22507 -- Clarified nature of the sender argument of signals

Backport of d1f93e9c from master.
parent e9c78435
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -227,7 +227,8 @@ For example:
This declares a ``pizza_done`` signal that will provide receivers with
``toppings`` and ``size`` arguments.

Remember that you're allowed to change this list of arguments at any time, so getting the API right on the first try isn't necessary.
Remember that you're allowed to change this list of arguments at any time, so
getting the API right on the first try isn't necessary.

Sending signals
---------------
@@ -238,8 +239,8 @@ There are two ways to send signals in Django.
.. method:: Signal.send_robust(sender, **kwargs)

To send a signal, call either :meth:`Signal.send` or :meth:`Signal.send_robust`.
You must provide the ``sender`` argument, and may provide as many other keyword
arguments as you like.
You must provide the ``sender`` argument (which is a class most of the time),
and may provide as many other keyword arguments as you like.

For example, here's how sending our ``pizza_done`` signal might look:

@@ -249,7 +250,7 @@ For example, here's how sending our ``pizza_done`` signal might look:
        ...

        def send_pizza(self, toppings, size):
            pizza_done.send(sender=self, toppings=toppings, size=size)
            pizza_done.send(sender=self.__class__, toppings=toppings, size=size)
            ...

Both ``send()`` and ``send_robust()`` return a list of tuple pairs