mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-09-06 09:51:00 +00:00
Merge pull request #10711 from jumpserver/pr@dev@perf_json_field_select
perf: 优化查询 acls
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user