MCPcopy
hub / github.com/django/django / try_transform

Method try_transform

django/db/models/sql/query.py:1460–1485  ·  view source on GitHub ↗

Helper method for build_lookup(). Try to fetch and initialize a transform for name parameter from lhs.

(self, lhs, name, lookups=None)

Source from the content-addressed store, hash-verified

1458 return lookup
1459
1460 def try_transform(self, lhs, name, lookups=None):
1461 """
1462 Helper method for build_lookup(). Try to fetch and initialize
1463 a transform for name parameter from lhs.
1464 """
1465 transform_class = lhs.get_transform(name)
1466 if transform_class:
1467 return transform_class(lhs)
1468 else:
1469 output_field = lhs.output_field.__class__
1470 suggested_lookups = difflib.get_close_matches(
1471 name, lhs.output_field.get_lookups()
1472 )
1473 if suggested_lookups:
1474 suggestion = ", perhaps you meant %s?" % " or ".join(suggested_lookups)
1475 else:
1476 suggestion = "."
1477 if lookups is not None:
1478 name_index = lookups.index(name)
1479 unsupported_lookup = LOOKUP_SEP.join(lookups[name_index:])
1480 else:
1481 unsupported_lookup = name
1482 raise FieldError(
1483 "Unsupported lookup '%s' for %s or join on the field not "
1484 "permitted%s" % (unsupported_lookup, output_field.__name__, suggestion)
1485 )
1486
1487 def build_filter(
1488 self,

Callers 4

build_lookupMethod · 0.95
transformMethod · 0.95
resolve_refMethod · 0.95
_order_by_pairsMethod · 0.80

Calls 5

FieldErrorClass · 0.90
get_lookupsMethod · 0.80
get_transformMethod · 0.45
joinMethod · 0.45
indexMethod · 0.45

Tested by

no test coverage detected