From 5362e08624c6745181944a10979da876934ea136 Mon Sep 17 00:00:00 2001 From: Hasan Ramezani Date: Thu, 10 Sep 2020 14:34:04 +0200 Subject: Fixed #31943 -- Fixed recreating QuerySet.values()/values_list() when using a pickled Query. --- docs/ref/models/querysets.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'docs/ref') diff --git a/docs/ref/models/querysets.txt b/docs/ref/models/querysets.txt index 228e2cf736..7f55684e08 100644 --- a/docs/ref/models/querysets.txt +++ b/docs/ref/models/querysets.txt @@ -106,6 +106,20 @@ the query construction and is not part of the public API. However, it is safe (and fully supported) to pickle and unpickle the attribute's contents as described here. +.. admonition:: Restrictions on ``QuerySet.values_list()`` + + If you recreate :meth:`QuerySet.values_list` using the pickled ``query`` + attribute, it will be converted to :meth:`QuerySet.values`:: + + >>> import pickle + >>> qs = Blog.objects.values_list('id', 'name') + >>> qs + + >>> reloaded_qs = Blog.objects.all() + >>> reloaded_qs.query = pickle.loads(pickle.dumps(qs.query)) + >>> reloaded_qs + + .. admonition:: You can't share pickles between versions Pickles of ``QuerySets`` are only valid for the version of Django that -- cgit v1.3