diff options
author | David Wobrock <david.wobrock@gmail.com> | 2023-04-18 10:19:06 +0200 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-04-18 12:41:14 +0200 |
commit | 9bbf97bcdb488bb11aebb5bd405549fbec6852cd (patch) | |
tree | d679e1a72227b9b6b5b5f44af6a4e231228f2d0d /tests/generic_relations_regress | |
parent | 594fcc2b7427f7baf2cf1a2d7cd2be61467df0c3 (diff) | |
download | django-9bbf97bcdb488bb11aebb5bd405549fbec6852cd.tar.gz |
Fixed #16055 -- Fixed crash when filtering against char/text GenericRelation relation on PostgreSQL.
Diffstat (limited to 'tests/generic_relations_regress')
-rw-r--r-- | tests/generic_relations_regress/models.py | 2 | ||||
-rw-r--r-- | tests/generic_relations_regress/tests.py | 14 |
2 files changed, 16 insertions, 0 deletions
diff --git a/tests/generic_relations_regress/models.py b/tests/generic_relations_regress/models.py index dc55b2a83b..6867747a26 100644 --- a/tests/generic_relations_regress/models.py +++ b/tests/generic_relations_regress/models.py @@ -64,12 +64,14 @@ class CharLink(models.Model): content_type = models.ForeignKey(ContentType, models.CASCADE) object_id = models.CharField(max_length=100) content_object = GenericForeignKey() + value = models.CharField(max_length=250) class TextLink(models.Model): content_type = models.ForeignKey(ContentType, models.CASCADE) object_id = models.TextField() content_object = GenericForeignKey() + value = models.CharField(max_length=250) class OddRelation1(models.Model): diff --git a/tests/generic_relations_regress/tests.py b/tests/generic_relations_regress/tests.py index 9b2f21b88b..b7ecb499eb 100644 --- a/tests/generic_relations_regress/tests.py +++ b/tests/generic_relations_regress/tests.py @@ -72,6 +72,20 @@ class GenericRelationTests(TestCase): TextLink.objects.create(content_object=oddrel) oddrel.delete() + def test_charlink_filter(self): + oddrel = OddRelation1.objects.create(name="clink") + CharLink.objects.create(content_object=oddrel, value="value") + self.assertSequenceEqual( + OddRelation1.objects.filter(clinks__value="value"), [oddrel] + ) + + def test_textlink_filter(self): + oddrel = OddRelation2.objects.create(name="clink") + TextLink.objects.create(content_object=oddrel, value="value") + self.assertSequenceEqual( + OddRelation2.objects.filter(tlinks__value="value"), [oddrel] + ) + def test_coerce_object_id_remote_field_cache_persistence(self): restaurant = Restaurant.objects.create() CharLink.objects.create(content_object=restaurant) |