MCPcopy
hub / github.com/tortoise/tortoise-orm / expand_lookup_expression

Function expand_lookup_expression

tortoise/query_utils.py:88–103  ·  view source on GitHub ↗
(root_model: type[Model], lookup_expression: str)

Source from the content-addressed store, hash-verified

86
87
88def expand_lookup_expression(root_model: type[Model], lookup_expression: str) -> Sequence[Field]:
89 field_names = lookup_expression.split("__")
90 fields: list[Field | RelationalField] = []
91 model = root_model
92 for field_name in field_names[:-1]:
93 if field_name not in model._meta.fetch_fields:
94 raise FieldError(f"{lookup_expression} not resolvable")
95 field = cast(RelationalField, model._meta.fields_map[field_name])
96 fields.append(field)
97 model = field.related_model
98 # the last field is not necessarily a RelationalField, so threting it differently
99 try:
100 fields.append(model._meta.fields_map[field_names[-1]])
101 except KeyError:
102 raise FieldError(f"{lookup_expression} not resolvable")
103 return fields
104
105
106def resolve_nested_field(

Callers 3

_join_select_relatedMethod · 0.90
_resolve_onlyMethod · 0.90
resolve_nested_fieldFunction · 0.85

Calls 1

FieldErrorClass · 0.90

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…