From d30febb4e59b659e0d279c77f61f936c199a05b2 Mon Sep 17 00:00:00 2001 From: Yoong Kang Lim Date: Sun, 5 Jun 2016 22:15:00 +1000 Subject: Fixed #26706 -- Made RelatedManager modification methods clear prefetch_related() cache. --- docs/ref/models/querysets.txt | 12 ++++++++++++ docs/ref/models/relations.txt | 8 ++++++++ 2 files changed, 20 insertions(+) (limited to 'docs/ref/models') diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 36d791db0e..3f4fce1a26 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -979,6 +979,18 @@ database. performance, since you have done a database query that you haven't used. So use this feature with caution! + Also, if you call the database-altering methods + :meth:`~django.db.models.fields.related.RelatedManager.add`, + :meth:`~django.db.models.fields.related.RelatedManager.remove`, + :meth:`~django.db.models.fields.related.RelatedManager.clear` or + :meth:`~django.db.models.fields.related.RelatedManager.set`, on + :class:`related managers`, + any prefetched cache for the relation will be cleared. + + .. versionchanged:: 1.11 + + The clearing of the prefetched cache described above was added. + You can also use the normal join syntax to do related fields of related fields. Suppose we have an additional model to the example above:: diff --git a/docs/ref/models/relations.txt b/docs/ref/models/relations.txt index d8100287df..c34d3104b2 100644 --- a/docs/ref/models/relations.txt +++ b/docs/ref/models/relations.txt @@ -170,6 +170,14 @@ Related objects reference ``add()``, ``create()``, ``remove()``, and ``set()`` methods are disabled. + If you use :meth:`~django.db.models.query.QuerySet.prefetch_related`, + the ``add()``, ``remove()``, ``clear()``, and ``set()`` methods clear + the prefetched cache. + + .. versionchanged:: 1.11 + + The clearing of the prefetched cache described above was added. + Direct Assignment ================= -- cgit v1.3