ソースを参照

Refs #26983 -- Added test for isnull lookup to CharField with primary_key=True.

Chris Lamb 8 年 前
コミット
97513269d7
3 ファイル変更13 行追加3 行削除
  1. 2 1
      docs/releases/1.10.1.txt
  2. 1 1
      tests/queries/models.py
  3. 10 1
      tests/queries/tests.py

+ 2 - 1
docs/releases/1.10.1.txt

@@ -28,7 +28,8 @@ Bugfixes
   (:ticket:`27005`).
 
 * Fixed the ``isnull`` lookup on a ``ForeignKey`` with its ``to_field``
-  pointing to a ``CharField`` (:ticket:`26983`).
+  pointing to a ``CharField`` or pointing to a ``CharField`` defined with
+  ``primary_key=True`` (:ticket:`26983`).
 
 * Prevented the ``migrate`` command from raising
   ``InconsistentMigrationHistory`` in the presence of unapplied squashed

+ 1 - 1
tests/queries/models.py

@@ -261,7 +261,7 @@ class CustomPk(models.Model):
 
 
 class Related(models.Model):
-    custom = models.ForeignKey(CustomPk, models.CASCADE)
+    custom = models.ForeignKey(CustomPk, models.CASCADE, null=True)
 
 
 class CustomPkTag(models.Model):

+ 10 - 1
tests/queries/tests.py

@@ -2482,7 +2482,16 @@ class ToFieldTests(TestCase):
             [node1]
         )
 
-    def test_isnull_query(self):
+
+class IsNullTests(TestCase):
+    def test_primary_key(self):
+        custom = CustomPk.objects.create(name='pk')
+        null = Related.objects.create()
+        notnull = Related.objects.create(custom=custom)
+        self.assertSequenceEqual(Related.objects.filter(custom__isnull=False), [notnull])
+        self.assertSequenceEqual(Related.objects.filter(custom__isnull=True), [null])
+
+    def test_to_field(self):
         apple = Food.objects.create(name="apple")
         Eaten.objects.create(food=apple, meal="lunch")
         Eaten.objects.create(meal="lunch")