mirror of
https://github.com/django/django.git
synced 2025-08-04 02:48:35 +00:00
Fixed #26706 -- Made RelatedManager modification methods clear prefetch_related() cache.
This commit is contained in:
parent
ea65c7cb48
commit
d30febb4e5
7 changed files with 124 additions and 2 deletions
|
@ -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<django.db.models.fields.related.RelatedManager>`,
|
||||
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::
|
||||
|
||||
|
|
|
@ -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
|
||||
=================
|
||||
|
||||
|
|
|
@ -357,6 +357,13 @@ Miscellaneous
|
|||
* The ``checked`` attribute rendered by form widgets now uses HTML5 boolean
|
||||
syntax rather than XHTML's ``checked='checked'``.
|
||||
|
||||
* :meth:`RelatedManager.add()
|
||||
<django.db.models.fields.related.RelatedManager.add>`,
|
||||
:meth:`~django.db.models.fields.related.RelatedManager.remove`,
|
||||
:meth:`~django.db.models.fields.related.RelatedManager.clear`, and
|
||||
:meth:`~django.db.models.fields.related.RelatedManager.set` now
|
||||
clear the ``prefetch_related()`` cache.
|
||||
|
||||
.. _deprecated-features-1.11:
|
||||
|
||||
Features deprecated in 1.11
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue