id summary reporter owner description type status component version severity resolution keywords cc stage has_patch needs_docs needs_tests needs_better_patch easy ui_ux 21102 Cannot pickle/unpickle a QuerySet that prefetches related objects more than once (Pickling Idempotency) Minjong Chung Anssi Kääriäinen "https://code.djangoproject.com/ticket/20157 https://code.djangoproject.com/ticket/20257 https://github.com/django/django/commit/bac187c0d8e829fb3ca2ca82965eabbcbcb6ddd5#django/db/models/query.py The patch above introduced a new bug for pickling idempotency. Simply put, a QuerySet that prefetches related objects cannot be pickled and unpickled more than once. The second pickling attempt raises an exception. With the follow models: {{{ #!python class Post(models.Model): post_date = models.DateTimeField(default=datetime.datetime.now) class Material(models.Model): post = models.ForeignKey(Post, related_name='materials') }}} This code won't run smoothly: {{{ #!python post = Post.objects.create() posts = Post.objects.all() posts = posts.prefetch_related('materials') posts = pickle.loads(pickle.dumps(posts)) posts = pickle.loads(pickle.dumps(posts)) }}}" Bug closed Database layer (models, ORM) 1.5 Release blocker fixed ORM, pickle, cache Ready for checkin 1 0 0 0 0 0