Helper method for build_lookup(). Try to fetch and initialize a transform for name parameter from lhs.
(self, lhs, name, lookups=None)
| 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, |
no test coverage detected