summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorLoic Bistuer <loic.bistuer@gmail.com>2014-03-30 01:57:28 +0700
committerLoic Bistuer <loic.bistuer@gmail.com>2014-03-30 12:13:00 +0700
commitbc9be72bdc9bb4dfc7f967ac3856115f0a6166b8 (patch)
tree04a4a68821d1ba243f4ad7841ebc80da400f591a /docs
parent975337e5c348a770df5a1925ce256ab54cb8c529 (diff)
Fixed transaction handling for a number of operations on related objects.
Thanks Anssi and Aymeric for the reviews. Refs #21174.
Diffstat (limited to 'docs')
-rw-r--r--docs/releases/1.8.txt14
1 files changed, 13 insertions, 1 deletions
diff --git a/docs/releases/1.8.txt b/docs/releases/1.8.txt
index 1f56c3109e..789c1db535 100644
--- a/docs/releases/1.8.txt
+++ b/docs/releases/1.8.txt
@@ -168,7 +168,19 @@ Backwards incompatible changes in 1.8
deprecation timeline for a given feature, its removal may appear as a
backwards incompatible change.
-...
+* Some operations on related objects such as
+ :meth:`~django.db.models.fields.related.RelatedManager.add()` or
+ :ref:`direct assignment<direct-assignment>` ran multiple data modifying
+ queries without wrapping them in transactions. To reduce the risk of data
+ corruption, all data modifying methods that affect multiple related objects
+ (i.e. ``add()``, ``remove()``, ``clear()``, and
+ :ref:`direct assignment<direct-assignment>`) now perform their data modifying
+ queries from within a transaction, provided your database supports
+ transactions.
+
+ This has one backwards incompatible side effect, signal handlers triggered
+ from these methods are now executed within the method's transaction and
+ any exception in a signal handler will prevent the whole operation.
Miscellaneous
~~~~~~~~~~~~~