11from datetime import UTC , datetime
22
3- from sqlalchemy import Boolean , DateTime , ForeignKey , Index , Integer , MetaData , String
3+ from sqlalchemy import Boolean , DateTime , Index , Integer , MetaData , String
44from sqlalchemy .ext .asyncio import AsyncAttrs
55from sqlalchemy .orm import DeclarativeBase , Mapped , declared_attr , mapped_column , relationship
66
@@ -132,15 +132,13 @@ class UserMixin(MappedBase):
132132
133133 created_id : Mapped [int | None ] = mapped_column (
134134 Integer ,
135- ForeignKey ("sys_user.id" , ondelete = "SET NULL" , onupdate = "CASCADE" ),
136135 default = None ,
137136 nullable = True ,
138137 index = True ,
139138 comment = "创建人ID" ,
140139 )
141140 updated_id : Mapped [int | None ] = mapped_column (
142141 Integer ,
143- ForeignKey ("sys_user.id" , ondelete = "SET NULL" , onupdate = "CASCADE" ),
144142 default = None ,
145143 nullable = True ,
146144 index = True ,
@@ -149,7 +147,6 @@ class UserMixin(MappedBase):
149147
150148 deleted_id : Mapped [int | None ] = mapped_column (
151149 Integer ,
152- ForeignKey ("sys_user.id" , ondelete = "SET NULL" , onupdate = "CASCADE" ),
153150 default = None ,
154151 nullable = True ,
155152 index = True ,
@@ -161,7 +158,7 @@ def created_by(self):
161158 """创建人关联关系"""
162159 return relationship (
163160 "UserModel" ,
164- foreign_keys = lambda : self .created_id , # pyright: ignore[reportArgumentType]
161+ primaryjoin = f"foreign( { self .__name__ } . created_id) == remote(UserModel.id)" ,
165162 uselist = False ,
166163 )
167164
@@ -170,7 +167,7 @@ def updated_by(self):
170167 """更新人关联关系"""
171168 return relationship (
172169 "UserModel" ,
173- foreign_keys = lambda : self .updated_id , # pyright: ignore[reportArgumentType]
170+ primaryjoin = f"foreign( { self .__name__ } . updated_id) == remote(UserModel.id)" ,
174171 uselist = False ,
175172 )
176173
@@ -179,6 +176,6 @@ def deleted_by(self):
179176 """删除人关联关系"""
180177 return relationship (
181178 "UserModel" ,
182- foreign_keys = lambda : self .deleted_id , # pyright: ignore[reportArgumentType]
179+ primaryjoin = f"foreign( { self .__name__ } . deleted_id) == remote(UserModel.id)" ,
183180 uselist = False ,
184181 )
0 commit comments