﻿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
26706	Reverse many to one and forward many to many managers's prefetch object cache should be cleared on add/remove/clear().	Sharat M R	Yoong Kang Lim	"{{{

class Media(models.Model):
    name = models.CharField(max_length=100)


class Tag(models.Model):
    tag = models.CharField(max_length=100)
    medias = models.ManyToManyField(Media)

    def __unicode__(self):
        return self.tag
}}}

Assume tag object below already has three items of Media model in medias which are saved in db. [m1, m2, m3].

{{{
tag = Tag.objects.get(id=1)
tag.medias.clear()
print(tag.medias.all())
}}}

The above code prints all the three [m1, m2, m3]. Fetching the tag again using get and printing givens an empty list ""[ ]""

Failing Testcase

{{{
class Test(TestCase):
    def test(self):
        tag = Tag.objects.create(tag='Tag')
        tag.medias.create(name='A')
        tag.medias.create(name='B')
        tag.medias.create(name='C')
        tag = Tag.objects.prefetch_related('medias').get(id=1)
        tag.medias.clear()
        print(tag.medias.all())
}}}

I guess its related to prefetch_related function."	Bug	closed	Database layer (models, ORM)	dev	Normal	fixed	manytomany m2m clear	mattdentremont@…	Accepted	1	0	0	0	0	0
