@@ -528,17 +528,16 @@ def __new__(
528528 pydantic_annotations = {}
529529 relationship_annotations = {}
530530 for k , v in class_dict .items ():
531- if isinstance (v , RelationshipInfo ):
531+ a = original_annotations .get (k , None )
532+ r = get_annotated_relationshipinfo (a )
533+ if r is not None :
534+ relationships [k ] = r
535+ elif isinstance (v , RelationshipInfo ):
532536 relationships [k ] = v
533537 else :
534538 dict_for_pydantic [k ] = v
535539 for k , v in original_annotations .items ():
536- # check for `field: Annotated[Any, Relationship()]`
537- t = get_annotated_relationshipinfo (v )
538- if t :
539- relationships [k ] = t
540- relationship_annotations [k ] = get_args (v )[0 ]
541- elif k in relationships :
540+ if k in relationships :
542541 relationship_annotations [k ] = v
543542 else :
544543 pydantic_annotations [k ] = v
@@ -628,6 +627,9 @@ def __init__(
628627 origin : Any = get_origin (raw_ann )
629628 if origin is Mapped :
630629 ann = raw_ann .__args__ [0 ]
630+ if origin is Annotated :
631+ ann = get_args (raw_ann )[0 ]
632+ cls .__annotations__ [rel_name ] = Mapped [ann ]
631633 else :
632634 ann = raw_ann
633635 # Plain forward references, for models not yet defined, are not
0 commit comments