perf: 优化 json m2m filter

pull/10723/head
ibuler 2023-06-15 09:37:00 +08:00
parent aad804f1af
commit 40d8a71bf8
2 changed files with 5 additions and 3 deletions

View File

@ -502,7 +502,7 @@ class JSONManyToManyDescriptor:
value = [value.id]
value = set(map(str, value))
rule_value = set(map(str, rule_value))
res &= value.issubset(rule_value)
res &= value & rule_value
else:
logging.error("unknown match: {}".format(rule['match']))
res &= False

View File

@ -104,13 +104,15 @@ class NativeClient(TextChoices):
xpack_protocols = cls.xpack_protocols()
for protocol, _clients in clients_map.items():
if not settings.XPACK_ENABLED and protocol in xpack_protocols:
continue
if isinstance(_clients, dict):
if os == 'all':
_clients = list(itertools.chain(*_clients.values()))
else:
_clients = _clients.get(os, _clients['default'])
if protocol in xpack_protocols:
continue
for client in _clients:
if not settings.XPACK_ENABLED and client in cls.xpack_methods():
continue