From 5e5203c7d73684ef7d5e4ce1cb71f2b92ae19360 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Fri, 2 Apr 2010 15:44:48 +0000 Subject: Fixed #11956 -- Modified the handling of m2m relationships between subclasses. Thanks to nidi for the report, and astoneman for the suggestion on how to fix the problem. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12908 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/regressiontests/m2m_regress/models.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tests') diff --git a/tests/regressiontests/m2m_regress/models.py b/tests/regressiontests/m2m_regress/models.py index 7f6da3341b..5453d396ae 100644 --- a/tests/regressiontests/m2m_regress/models.py +++ b/tests/regressiontests/m2m_regress/models.py @@ -17,6 +17,13 @@ class Tag(models.Model): def __unicode__(self): return self.name +# Regression for #11956 -- a many to many to the base class +class TagCollection(Tag): + tags = models.ManyToManyField(Tag, related_name='tag_collections') + + def __unicode__(self): + return self.name + # A related_name is required on one of the ManyToManyField entries here because # they are both addressable as reverse relations from Tag. class Entry(models.Model): @@ -102,5 +109,17 @@ FieldError: Cannot resolve keyword 'porcupine' into field. Choices are: id, name >>> w.save() >>> w.delete() +# Regression for #11956 -- You can add an object to a m2m with the +# base class without causing integrity errors +>>> c1 = TagCollection.objects.create(name='c1') +>>> c1.tags = [t1,t2] + +>>> c1 = TagCollection.objects.get(name='c1') +>>> c1.tags.all() +[, ] + +>>> t1.tag_collections.all() +[] + """ } -- cgit v1.3