  ``instance``    ``p`` (the ``Pizza`` instance being modified)
  
  ``action``      ``"pre_add"`` (followed by a separate signal with ``"post_add"``)
  
  ``reverse``     ``False`` (``Pizza`` contains the :class:`ManyToManyField`,
                  so this call modifies the forward relation)
  
  ``model``       ``Topping`` (the class of the objects added to the
                  ``Pizza``)
  
  ``pk_set``      ``[t.id]`` (since only ``Topping t`` was added to the relation)
 
</s> remove     instance of the ``sender``, or of the class the :class:`ManyToManyField`
    is related to.
 </s> add     instance of the ``sender``, or of the class the
    :class:`~django.db.models.ManyToManyField` is related to. </s> remove Sent when a :class:`ManyToManyField` is changed on a model instance.
Strictly speaking, this is not a model signal since it is sent by the
:class:`ManyToManyField`, but since it complements the
 </s> add Sent when a :class:`~django.db.models.ManyToManyField` is changed on a model
instance. Strictly speaking, this is not a model signal since it is sent by the
:class:`~django.db.models.ManyToManyField`, but since it complements the </s> remove         :class:`~django.db.models.fields.BooleanField` on the model
 </s> add         :class:`~django.db.models.BooleanField` on the model </s> remove     The intermediate model class describing the :class:`ManyToManyField`.
    This class is automatically created when a many-to-many field is
    defined; you can access it using the ``through`` attribute on the
    many-to-many field.
 </s> add     The intermediate model class describing the
    :class:`~django.db.models.ManyToManyField`. This class is automatically
    created when a many-to-many field is defined; you can access it using the
    ``through`` attribute on the many-to-many field. </s> remove         :class:`datetime` value into a list with date and time split into two
        separate values::
 </s> add         :class:`~datetime.datetime` value into a list with date and time split
        into two separate values::
``reverse``     ``False`` (``Pizza`` contains the
                :class:`~django.db.models.ManyToManyField`, so this call
                modifies the forward relation)
  ``instance``    ``p`` (the ``Pizza`` instance being modified)
  
  ``action``      ``"pre_add"`` (followed by a separate signal with ``"post_add"``)
  
``reverse``     ``False`` (``Pizza`` contains the
                :class:`~django.db.models.ManyToManyField`, so this call
                modifies the forward relation)
``reverse``     ``False`` (``Pizza`` contains the
                :class:`~django.db.models.ManyToManyField`, so this call
                modifies the forward relation)
  
  ``model``       ``Topping`` (the class of the objects added to the
                  ``Pizza``)
  
  ``pk_set``      ``[t.id]`` (since only ``Topping t`` was added to the relation)
keep keep keep keep replace replace keep keep keep keep keep
 Fixed broken links, round 3. refs #19516 
docs/ref/signals.txt