1
0
mirror of https://github.com/django/django.git synced 2025-10-31 09:41:08 +00:00

[1.8.x] Fixed #24831 -- Fixed pickling queryset with prefetch_related() after deleting objects.

Backport of 2913d6b77d from master
This commit is contained in:
Andriy Sokolovskiy
2015-05-29 14:45:36 +03:00
committed by Tim Graham
parent 1c57d7e7fa
commit 9d83de8ff3
3 changed files with 22 additions and 0 deletions

View File

@@ -120,6 +120,20 @@ class PickleabilityTestCase(TestCase):
groups = pickle.loads(pickle.dumps(groups))
self.assertQuerysetEqual(groups, [g], lambda x: x)
def test_pickle_prefetch_related_with_m2m_and_objects_deletion(self):
"""
#24831 -- Cached properties on ManyToOneRel created in QuerySet.delete()
caused subsequent QuerySet pickling to fail.
"""
g = Group.objects.create(name='foo')
m2m = M2MModel.objects.create()
m2m.groups.add(g)
Group.objects.all().delete()
m2ms = M2MModel.objects.prefetch_related('groups')
m2ms = pickle.loads(pickle.dumps(m2ms))
self.assertQuerysetEqual(m2ms, [m2m], lambda x: x)
def test_missing_django_version_unpickling(self):
"""
#21430 -- Verifies a warning is raised for querysets that are