diff --git a/tests/generic_relations/models.py b/tests/generic_relations/models.py index 34dc8d3a7d..2acb982b9a 100644 --- a/tests/generic_relations/models.py +++ b/tests/generic_relations/models.py @@ -98,3 +98,7 @@ class Gecko(models.Model): # To test fix for #11263 class Rock(Mineral): tags = generic.GenericRelation(TaggedItem) + +class ManualPK(models.Model): + id = models.IntegerField(primary_key=True) + tags = generic.GenericRelation(TaggedItem) diff --git a/tests/generic_relations/tests.py b/tests/generic_relations/tests.py index dd9dc506ca..79c7bc6184 100644 --- a/tests/generic_relations/tests.py +++ b/tests/generic_relations/tests.py @@ -6,7 +6,7 @@ from django.contrib.contenttypes.models import ContentType from django.test import TestCase from .models import (TaggedItem, ValuableTaggedItem, Comparison, Animal, - Vegetable, Mineral, Gecko, Rock) + Vegetable, Mineral, Gecko, Rock, ManualPK) class GenericRelationsTests(TestCase): @@ -75,12 +75,17 @@ class GenericRelationsTests(TestCase): "", "" ]) + # Create another fatty tagged instance with different PK to ensure + # there is a content type restriction in the generated queries below. + mpk = ManualPK.objects.create(id=lion.pk) + mpk.tags.create(tag="fatty") self.assertQuerysetEqual(Animal.objects.filter(tags__tag='fatty'), [ "" ]) self.assertQuerysetEqual(Animal.objects.exclude(tags__tag='fatty'), [ "" ]) + mpk.delete() # If you delete an object with an explicit Generic relation, the related # objects are deleted when the source object is deleted.