MCPcopy Index your code
hub / github.com/tortoise/tortoise-orm / resolve_to_python_value

Method resolve_to_python_value

tortoise/queryset.py:1585–1608  ·  view source on GitHub ↗
(self, model: type[MODEL], field: str)

Source from the content-addressed store, hash-verified

1583 raise FieldError(f'Unknown field "{field}" for model "{self.model.__name__}"')
1584
1585 def resolve_to_python_value(self, model: type[MODEL], field: str) -> Callable:
1586 if field in model._meta.fetch_fields:
1587 # return as is to get whole model objects
1588 return lambda x: x
1589
1590 if field in (x[1] for x in model._meta.db_native_fields):
1591 return lambda x: x
1592
1593 if field in self._annotations:
1594 annotation = self._annotations[field]
1595 field_object = getattr(annotation, "field_object", None)
1596 if field_object:
1597 return field_object.to_python_value
1598 return lambda x: x
1599
1600 if field in model._meta.fields_map:
1601 return model._meta.fields_map[field].to_python_value
1602
1603 field_, __, forwarded_fields = field.partition("__")
1604 if field_ in model._meta.fetch_fields:
1605 new_model = model._meta.fields_map[field_].related_model # type: ignore
1606 return self.resolve_to_python_value(new_model, forwarded_fields)
1607
1608 raise FieldError(f'Unknown field "{field}" for model "{model}"')
1609
1610 def _resolve_group_bys(self, *field_names: str) -> list:
1611 group_bys = []

Callers 2

_executeMethod · 0.80
_executeMethod · 0.80

Calls 1

FieldErrorClass · 0.90

Tested by

no test coverage detected