summaryrefslogtreecommitdiff
path: root/docs/ref
diff options
context:
space:
mode:
authorJezeniel Zapanta <jezeniel.zapanta@gmail.com>2017-10-31 05:08:15 +0800
committerTim Graham <timograham@gmail.com>2018-03-20 21:09:08 -0400
commitabe6c5defefc7057e7fb5f47b79643f7b89f7d90 (patch)
treeac52500bab32074f0e4b66dd0709b0171ca483b1 /docs/ref
parent1834490a0c45a87b718c9ee84523a6d7ec6c15ee (diff)
Fixed #28514 -- Clarifed docs about idempotence of RelatedManager.add().
Diffstat (limited to 'docs/ref')
-rw-r--r--docs/ref/models/relations.txt10
1 files changed, 7 insertions, 3 deletions
diff --git a/docs/ref/models/relations.txt b/docs/ref/models/relations.txt
index beffe1283e..9814485445 100644
--- a/docs/ref/models/relations.txt
+++ b/docs/ref/models/relations.txt
@@ -56,11 +56,15 @@ Related objects reference
manager perform the update by calling ``e.save()``.
Using ``add()`` with a many-to-many relationship, however, will not
- call any ``save()`` methods, but rather create the relationships
- using :meth:`QuerySet.bulk_create()
+ call any ``save()`` methods (the ``bulk`` argument doesn't exist), but
+ rather create the relationships using :meth:`QuerySet.bulk_create()
<django.db.models.query.QuerySet.bulk_create>`. If you need to execute
some custom logic when a relationship is created, listen to the
- :data:`~django.db.models.signals.m2m_changed` signal.
+ :data:`~django.db.models.signals.m2m_changed` signal, which will
+ trigger ``pre_add`` and ``post_add`` actions.
+
+ Using ``add()`` on a relation that already exists won't duplicate the
+ relation, but it will still trigger signals.
.. method:: create(**kwargs)