Side load _filter_or_exclude to avoid recursion

fix_request_path_info^2
Adam Donaghy 2020-08-19 18:04:20 +10:00
parent 21f635d65a
commit d93f17846f
1 changed files with 15 additions and 15 deletions

View File

@ -525,18 +525,18 @@ class PolymorphicQuerySet(QuerySet):
return clist return clist
if get_django_version() > "3.2": if get_django_version() >= "3.2":
class PolymorphicQuerySet(PolymorphicQuerySet): def _filter_or_exclude(self, negate, args, kwargs):
def _filter_or_exclude(self, negate, args, kwargs): # We override this internal Django functon as it is used for all filter member functions.
# We override this internal Django functon as it is used for all filter member functions. q_objects = translate_polymorphic_filter_definitions_in_args(
q_objects = translate_polymorphic_filter_definitions_in_args( queryset_model=self.model, args=args, using=self.db
queryset_model=self.model, args=args, using=self.db )
) # filter_field='data'
# filter_field='data' additional_args = translate_polymorphic_filter_definitions_in_kwargs(
additional_args = translate_polymorphic_filter_definitions_in_kwargs( queryset_model=self.model, kwargs=kwargs, using=self.db
queryset_model=self.model, kwargs=kwargs, using=self.db )
) args = list(q_objects) + additional_args
args = list(q_objects) + additional_args return super(PolymorphicQuerySet, self)._filter_or_exclude(
return super(PolymorphicQuerySet, self)._filter_or_exclude( negate=negate, args=args, kwargs=kwargs
negate=negate, args=args, kwargs=kwargs )
) PolymorphicQuerySet._filter_or_exclude = _filter_or_exclude