summaryrefslogtreecommitdiff
path: root/tests/generic_relations_regress
diff options
context:
space:
mode:
authorDavid Wobrock <david.wobrock@gmail.com>2023-04-18 10:19:06 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-04-18 12:41:14 +0200
commit9bbf97bcdb488bb11aebb5bd405549fbec6852cd (patch)
treed679e1a72227b9b6b5b5f44af6a4e231228f2d0d /tests/generic_relations_regress
parent594fcc2b7427f7baf2cf1a2d7cd2be61467df0c3 (diff)
downloaddjango-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.py2
-rw-r--r--tests/generic_relations_regress/tests.py14
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)