inherit choices validators and class validators for fields in generated pydantic models

This commit is contained in:
collerek
2021-10-11 16:22:50 +02:00
parent f6458be157
commit 9559c0f7f6
6 changed files with 46 additions and 25 deletions

View File

@ -50,9 +50,10 @@ def get_pydantic_field(field_name: str, model: Type["Model"]) -> "ModelField":
:return: newly created pydantic field
:rtype: pydantic.ModelField
"""
type_ = model.Meta.model_fields[field_name].__type__
return ModelField(
name=field_name,
type_=model.Meta.model_fields[field_name].__type__, # type: ignore
type_=type_, # type: ignore
model_config=model.__config__,
required=not model.Meta.model_fields[field_name].nullable,
class_validators={},

View File

@ -101,6 +101,7 @@ def register_reverse_model_fields(model_field: "ForeignKeyField") -> None:
:type model_field: relation Field
"""
related_name = model_field.get_related_name()
# TODO: Reverse relations does not register pydantic fields?
if model_field.is_multi:
model_field.to.Meta.model_fields[related_name] = ManyToMany( # type: ignore
model_field.owner,