浏览代码

Fixed #19939 -- generic relations + split_exclude regression

Added a test, the issue was already fixed (likely by the patch
for #19385).
Anssi Kääriäinen 12 年之前
父节点
当前提交
c0d8932a6d
共有 2 个文件被更改,包括 10 次插入1 次删除
  1. 4 0
      tests/generic_relations/models.py
  2. 6 1
      tests/generic_relations/tests.py

+ 4 - 0
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)

+ 6 - 1
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):
             "<Animal: Lion>",
             "<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'), [
             "<Animal: Platypus>"
         ])
         self.assertQuerysetEqual(Animal.objects.exclude(tags__tag='fatty'), [
             "<Animal: Lion>"
         ])
+        mpk.delete()
 
         # If you delete an object with an explicit Generic relation, the related
         # objects are deleted when the source object is deleted.