Browse Source

[1.8.x] Refs #24698, #24712 -- Forwardported ForeignKey.get_db_prep_value() test and release notes.

Fixed in master by b68212f539f206679580afbfd008e7d329c9cd31.

Forwardport of 290c9d665490d80b0a1b648fb022190d7dc375fc from stable/1.8.x
Abhaya Agarwal 10 years ago
parent
commit
7c7b855106
3 changed files with 19 additions and 1 deletions
  1. 5 0
      docs/releases/1.8.2.txt
  2. 8 0
      tests/model_fields/models.py
  3. 6 1
      tests/model_fields/test_uuid.py

+ 5 - 0
docs/releases/1.8.2.txt

@@ -20,3 +20,8 @@ Bugfixes
 
 * Fixed incorrect GROUP BY clause generation on MySQL when the query's model
   has a self-referential foreign key (:ticket:`24748`).
+
+* Implemented ``ForeignKey.get_db_prep_value()`` so that ``ForeignKey``\s
+  pointing to :class:`~django.db.models.UUIDField` and inheritance on models
+  with ``UUIDField`` primary keys work correctly (:ticket:`24698`,
+  :ticket:`24712`).

+ 8 - 0
tests/model_fields/models.py

@@ -373,3 +373,11 @@ class PrimaryKeyUUIDModel(models.Model):
 
 class RelatedToUUIDModel(models.Model):
     uuid_fk = models.ForeignKey('PrimaryKeyUUIDModel')
+
+
+class UUIDChild(PrimaryKeyUUIDModel):
+    pass
+
+
+class UUIDGrandchild(UUIDChild):
+    pass

+ 6 - 1
tests/model_fields/test_uuid.py

@@ -6,7 +6,8 @@ from django.db import models
 from django.test import TestCase
 
 from .models import (
-    NullableUUIDModel, PrimaryKeyUUIDModel, RelatedToUUIDModel, UUIDModel,
+    NullableUUIDModel, PrimaryKeyUUIDModel, RelatedToUUIDModel, UUIDGrandchild,
+    UUIDModel,
 )
 
 
@@ -146,3 +147,7 @@ class TestAsPrimaryKey(TestCase):
         RelatedToUUIDModel.objects.update(uuid_fk=u2.pk)
         r.refresh_from_db()
         self.assertEqual(r.uuid_fk, u2)
+
+    def test_two_level_foreign_keys(self):
+        # exercises ForeignKey.get_db_prep_value()
+        UUIDGrandchild().save()