File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -562,7 +562,14 @@ def get_config(name: str) -> Any:
562562 # If it was passed by kwargs, ensure it's also set in config
563563 set_config_value (model = new_cls , parameter = "table" , value = config_table )
564564 for k , v in get_model_fields (new_cls ).items ():
565- col = get_column_from_field (v )
565+ original_field = getattr (v , "_original_assignment" , Undefined )
566+ annotated_field_meta = new_cls .__annotations__ [k ].__dict__ .get ("__metadata__" , [])
567+ annotated_field = next ((f for f in annotated_field_meta if isinstance (f , FieldInfo )), None )
568+ field = original_field if isinstance (original_field , FieldInfo ) else (annotated_field or v )
569+ # Get the original sqlmodel FieldInfo, pydantic >=v2.12 changes the model
570+ field .annotation = v .annotation
571+ # Guarantee the field has the correct type
572+ col = get_column_from_field (field )
566573 setattr (new_cls , k , col )
567574 # Set a config flag to tell FastAPI that this should be read with a field
568575 # in orm_mode instead of preemptively converting it to a dict.
You can’t perform that action at this time.
0 commit comments