﻿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
20257	QuerySet that prefetches related object with a ManyToMany field cannot be pickled.	bryced	nobody	"After upgrading from 1.4 to 1.5, exceptions were thrown when trying to pickle certain querysets. This means that the caching framework doesn't work for these querysets.

In 1.4 the following code runs fine. In 1.5 this error occurs:
{{{
PicklingError: Can't pickle <class 'people.models.SocialProfile_friends'>: it's not found as people.models.SocialProfile_friends
}}}


models.py
{{{
from django.db import models


class Person(models.Model):
    name = models.CharField(max_length=200)


class SocialProfile(models.Model):
    person = models.ForeignKey(Person)
    friends = models.ManyToManyField('self')

}}}

tests.py
{{{
from django.test import TestCase
from people.models import Person
import pickle


class SimpleTest(TestCase):

    def test_pickle_failure(self):
        bob = Person(name=""Bob"")
        bob.save()

        people = Person.objects.all().prefetch_related('socialprofile_set')
        pickle.dumps(people)
}}}"	Bug	closed	Database layer (models, ORM)	1.5	Release blocker	fixed	ORM, pickle, cache	bmispelon@…	Accepted	0	0	0	0	0	0
