fix polymorphic_on check

This commit is contained in:
John Lyu 2024-11-26 10:54:26 +08:00
parent 589237b80f
commit 4071b0fc64

View File

@ -294,16 +294,19 @@ if IS_PYDANTIC_V2:
# Override polymorphic_on default value # Override polymorphic_on default value
mapper = inspect(cls) mapper = inspect(cls)
polymorphic_on = mapper.polymorphic_on polymorphic_on = mapper.polymorphic_on
polymorphic_property = mapper.get_property_by_column(polymorphic_on) if polymorphic_on:
field_info = cls.model_fields.get(polymorphic_property.key) polymorphic_property = mapper.get_property_by_column(polymorphic_on)
if field_info: field_info = cls.model_fields.get(polymorphic_property.key)
v = values.get(polymorphic_property.key) if field_info:
# if model is inherited or polymorphic_on is not explicitly set v = values.get(polymorphic_property.key)
# set the polymorphic_on by default # if model is inherited or polymorphic_on is not explicitly set
if mapper.inherits or v is None: # set the polymorphic_on by default
setattr( if mapper.inherits or v is None:
self_instance, polymorphic_property.key, mapper.polymorphic_identity setattr(
) self_instance,
polymorphic_property.key,
mapper.polymorphic_identity,
)
return self_instance return self_instance
def sqlmodel_validate( def sqlmodel_validate(