perf: 暂存一下

This commit is contained in:
ibuler
2023-05-19 11:30:50 +08:00
parent a261d69cd2
commit 197364d42d
2 changed files with 9 additions and 17 deletions

View File

@@ -315,8 +315,7 @@ class RelatedManager:
else:
queryset = to_model.objects.all()
q = cls.get_filter_q(value, to_model)
print("Q: ", q)
return queryset.filter(q)
return queryset.filter(q).distinct()
@staticmethod
def get_ip_in_q(name, val):
@@ -378,22 +377,12 @@ class RelatedManager:
q = Q(**{lookup: val})
elif match == "not":
q = ~Q(**{name: val})
elif match == "m2m":
elif match in ['m2m', 'in']:
if not isinstance(val, list):
val = [val]
q = Q(**{"{}__in".format(name): val})
elif match == "in" and isinstance(val, list):
if '*' not in val:
lookup = "{}__in".format(name)
q = Q(**{lookup: val})
else:
q = Q()
q = Q() if '*' in val else Q(**{"{}__in".format(name): val})
else:
if val == '*':
q = Q()
else:
q = Q(**{name: val})
q = Q() if val == '*' else Q(**{name: val})
filters &= q
return filters