Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,7 @@ answer newbie questions, and generally made Django that much better:
Jeremy Dunck <jdunck@gmail.com>
Jeremy Lainé <jeremy.laine@m4x.org>
Jesse Young <adunar@gmail.com>
Jezeniel Zapanta <jezeniel.zapanta@gmail.com>
jhenry <jhenry@theonion.com>
Jim Dalton <jim.dalton@gmail.com>
Jimmy Song <jaejoon@gmail.com>
Expand Down
10 changes: 7 additions & 3 deletions docs/ref/models/relations.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
2 changes: 1 addition & 1 deletion docs/topics/db/examples/many_to_many.txt
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ Create another ``Article``, and set it to appear in both ``Publications``::
>>> a2.publications.add(p1, p2)
>>> a2.publications.add(p3)

Adding a second time is OK::
Adding a second time is OK, it will not duplicate the relation::

>>> a2.publications.add(p3)

Expand Down