From 9bbf97bcdb488bb11aebb5bd405549fbec6852cd Mon Sep 17 00:00:00 2001 From: David Wobrock Date: Tue, 18 Apr 2023 10:19:06 +0200 Subject: Fixed #16055 -- Fixed crash when filtering against char/text GenericRelation relation on PostgreSQL. --- django/db/models/fields/related.py | 8 ++++++++ django/db/models/fields/reverse_related.py | 3 +++ 2 files changed, 11 insertions(+) (limited to 'django/db/models/fields') diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index 0efbe53a0b..7a49861164 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -785,6 +785,14 @@ class ForeignObject(RelatedField): def get_reverse_joining_columns(self): return self.get_joining_columns(reverse_join=True) + def get_joining_fields(self, reverse_join=False): + return tuple( + self.reverse_related_fields if reverse_join else self.related_fields + ) + + def get_reverse_joining_fields(self): + return self.get_joining_fields(reverse_join=True) + def get_extra_descriptor_filter(self, instance): """ Return an extra filter condition for related object fetching when diff --git a/django/db/models/fields/reverse_related.py b/django/db/models/fields/reverse_related.py index b7d82f6258..f3da8f8bf2 100644 --- a/django/db/models/fields/reverse_related.py +++ b/django/db/models/fields/reverse_related.py @@ -195,6 +195,9 @@ class ForeignObjectRel(FieldCacheMixin): def get_joining_columns(self): return self.field.get_reverse_joining_columns() + def get_joining_fields(self): + return self.field.get_reverse_joining_fields() + def get_extra_restriction(self, alias, related_alias): return self.field.get_extra_restriction(related_alias, alias) -- cgit v1.3