From 3b590352d077efe8ee374d44e92e4052e794bca0 Mon Sep 17 00:00:00 2001 From: mschem Date: Wed, 26 Apr 2023 10:27:14 -0700 Subject: [PATCH] add prefetch ignores --- rest_flex_fields/filter_backends.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/rest_flex_fields/filter_backends.py b/rest_flex_fields/filter_backends.py index 63e3402..b0da9fc 100644 --- a/rest_flex_fields/filter_backends.py +++ b/rest_flex_fields/filter_backends.py @@ -227,13 +227,19 @@ def filter_queryset( queryset = queryset.prefetch_related(*( model_field.name for model_field in nested_model_fields if - (model_field.is_relation and not model_field.many_to_one) or - (model_field.is_relation and model_field.many_to_one and not model_field.concrete) # Include GenericForeignKey) + ( + (model_field.is_relation and not model_field.many_to_one) or + (model_field.is_relation and model_field.many_to_one and not model_field.concrete) # Include GenericForeignKey) + ) and + (model_field.name not in self._get_prefetches_ignores()) ) ) return queryset + def _get_prefetches_ignores(self): + return [] + @staticmethod @lru_cache() def _get_field(field_name: str, model: models.Model) -> Optional[models.Field]: