Browse Source

perf: 优化 json field re 报错问题

pull/10726/head
ibuler 1 year ago
parent
commit
58edf02179
  1. 9
      apps/common/db/fields.py

9
apps/common/db/fields.py

@ -378,9 +378,16 @@ class RelatedManager:
if match == 'ip_in': if match == 'ip_in':
q = cls.get_ip_in_q(name, val) q = cls.get_ip_in_q(name, val)
elif match in ("exact", "contains", "startswith", "endswith", "regex", "gte", "lte", "gt", "lt"): elif match in ("exact", "contains", "startswith", "endswith", "gte", "lte", "gt", "lt"):
lookup = "{}__{}".format(name, match) lookup = "{}__{}".format(name, match)
q = Q(**{lookup: val}) q = Q(**{lookup: val})
elif match == 'regex':
try:
re.compile(val)
lookup = "{}__{}".format(name, match)
q = Q(**{lookup: val})
except re.error:
q = ~Q()
elif match == "not": elif match == "not":
q = ~Q(**{name: val}) q = ~Q(**{name: val})
elif match in ['m2m', 'in']: elif match in ['m2m', 'in']:

Loading…
Cancel
Save