diff options
Diffstat (limited to 'ishtar_common/utils.py')
-rw-r--r-- | ishtar_common/utils.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py index 4e80ac60a..cf58216a4 100644 --- a/ishtar_common/utils.py +++ b/ishtar_common/utils.py @@ -750,12 +750,17 @@ class OwnPerms: return [] @classmethod - def _construct_query_own(cls, prefix, dct_list): + def _construct_query_own(cls, model, prefix, dct_list): q = None for subquery_dict in dct_list: subquery = None for k in subquery_dict: subsubquery = Q(**{prefix + k: subquery_dict[k]}) + # slice in multiple queries in order to prevent too complicated queries + subsubquery = Q(id__in=( + model.objects.filter(subsubquery).values_list("id", flat=True) + ) + ) if subquery: subquery |= subsubquery else: |