Kaydet (Commit) c0d8932a authored tarafından Anssi Kääriäinen's avatar Anssi Kääriäinen

Fixed #19939 -- generic relations + split_exclude regression

Added a test, the issue was already fixed (likely by the patch
for #19385).
üst 92351c74
...@@ -98,3 +98,7 @@ class Gecko(models.Model): ...@@ -98,3 +98,7 @@ class Gecko(models.Model):
# To test fix for #11263 # To test fix for #11263
class Rock(Mineral): class Rock(Mineral):
tags = generic.GenericRelation(TaggedItem) tags = generic.GenericRelation(TaggedItem)
class ManualPK(models.Model):
id = models.IntegerField(primary_key=True)
tags = generic.GenericRelation(TaggedItem)
...@@ -6,7 +6,7 @@ from django.contrib.contenttypes.models import ContentType ...@@ -6,7 +6,7 @@ from django.contrib.contenttypes.models import ContentType
from django.test import TestCase from django.test import TestCase
from .models import (TaggedItem, ValuableTaggedItem, Comparison, Animal, from .models import (TaggedItem, ValuableTaggedItem, Comparison, Animal,
Vegetable, Mineral, Gecko, Rock) Vegetable, Mineral, Gecko, Rock, ManualPK)
class GenericRelationsTests(TestCase): class GenericRelationsTests(TestCase):
...@@ -75,12 +75,17 @@ class GenericRelationsTests(TestCase): ...@@ -75,12 +75,17 @@ class GenericRelationsTests(TestCase):
"<Animal: Lion>", "<Animal: Lion>",
"<Animal: Platypus>" "<Animal: Platypus>"
]) ])
# 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.filter(tags__tag='fatty'), [
"<Animal: Platypus>" "<Animal: Platypus>"
]) ])
self.assertQuerysetEqual(Animal.objects.exclude(tags__tag='fatty'), [ self.assertQuerysetEqual(Animal.objects.exclude(tags__tag='fatty'), [
"<Animal: Lion>" "<Animal: Lion>"
]) ])
mpk.delete()
# If you delete an object with an explicit Generic relation, the related # If you delete an object with an explicit Generic relation, the related
# objects are deleted when the source object is deleted. # objects are deleted when the source object is deleted.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment