diff options
| author | Loic Bistuer <loic.bistuer@gmail.com> | 2014-03-30 01:57:28 +0700 |
|---|---|---|
| committer | Loic Bistuer <loic.bistuer@gmail.com> | 2014-03-30 12:13:00 +0700 |
| commit | bc9be72bdc9bb4dfc7f967ac3856115f0a6166b8 (patch) | |
| tree | 04a4a68821d1ba243f4ad7841ebc80da400f591a /docs | |
| parent | 975337e5c348a770df5a1925ce256ab54cb8c529 (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.txt | 14 |
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 ~~~~~~~~~~~~~ |
