Merge pull request #10711 from jumpserver/pr@dev@perf_json_field_select

perf: 优化查询 acls
This commit is contained in:
老广
2023-06-14 18:19:42 +08:00
committed by GitHub
3 changed files with 13 additions and 7 deletions

View File

@@ -295,7 +295,13 @@ class RelatedManager:
self.instance.__dict__[self.field.name] = value
@classmethod
def get_filter_q(cls, value, to_model):
def _get_filter_q(cls, value, to_model):
"""
这个是 instance 去查找 to_model 的 queryset 的 Q
:param value:
:param to_model:
:return:
"""
if not value or not isinstance(value, dict):
return Q()
@@ -314,7 +320,7 @@ class RelatedManager:
queryset = to_model.get_queryset()
else:
queryset = to_model.objects.all()
q = cls.get_filter_q(value, to_model)
q = cls._get_filter_q(value, to_model)
return queryset.filter(q).distinct()
@staticmethod