MCPcopy
hub / github.com/django/django / RelateLookup

Class RelateLookup

django/contrib/gis/db/models/lookups.py:273–287  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

271
272@BaseSpatialField.register_lookup
273class RelateLookup(GISLookup):
274 lookup_name = "relate"
275 sql_template = "%(func)s(%(lhs)s, %(rhs)s, %%s)"
276 pattern_regex = _lazy_re_compile(r"^[012TF*]{9}$")
277
278 def process_rhs(self, compiler, connection):
279 # Check the pattern argument
280 pattern = self.rhs_params[0]
281 backend_op = connection.ops.gis_operators[self.lookup_name]
282 if hasattr(backend_op, "check_relate_argument"):
283 backend_op.check_relate_argument(pattern)
284 elif not isinstance(pattern, str) or not self.pattern_regex.match(pattern):
285 raise ValueError('Invalid intersection matrix pattern "%s".' % pattern)
286 sql, params = super().process_rhs(compiler, connection)
287 return sql, (*params, pattern)
288
289
290@BaseSpatialField.register_lookup

Callers

nothing calls this directly

Calls 1

_lazy_re_compileFunction · 0.90

Tested by

no test coverage detected