From 2db03a4fbbac7b5a770eb80bedf5eab9c4ab714e Mon Sep 17 00:00:00 2001 From: martsforever Date: Wed, 10 Sep 2025 20:55:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=A1=E6=89=B9=E5=8D=95=E5=85=B3?= =?UTF-8?q?=E8=81=94=E6=9F=A5=E8=AF=A2=E5=87=BA=E6=9D=A5=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E4=BA=BA=E7=9A=84=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/model/ApproveModel.py | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/app/model/ApproveModel.py b/app/model/ApproveModel.py index dd7dc29..392a552 100644 --- a/app/model/ApproveModel.py +++ b/app/model/ApproveModel.py @@ -6,6 +6,7 @@ from sqlmodel import Field, Relationship, select from app.model.ProjectModel import ProjectModel from app.model.PublicApproveModel import PublicApproveModel +from app.model.UserModel import UserServiceModel from app.utils.create_module_service import create_model_service @@ -46,11 +47,41 @@ class ApproveModel(PublicApproveModel, table=True): def project(self, value: Optional[ProjectModel]) -> None: pass + # /*---------------------------------------user-------------------------------------------*/ + + apply_user_id: str = Field( + default=None, + description="申请人ID", + foreign_key="pl_user.id", + nullable=True + ) + + apply_user_relationship: Optional["UserServiceModel"] = Relationship( + sa_relationship_kwargs={ + "foreign_keys": "ApproveModel.apply_user_id", + "remote_side": "UserServiceModel.id", + "uselist": False + } + ) + + @computed_field + @property + def apply_user(self) -> Optional["UserServiceModel"]: + try: + return self.apply_user_relationship + except: + return None + + @apply_user.setter + def apply_user(self, value: Optional["UserServiceModel"]) -> None: + pass + ApproveService = create_model_service( Cls=ApproveModel, custom_query=lambda: select(ApproveModel) .options( - selectinload(ApproveModel.proj_rel) + selectinload(ApproveModel.proj_rel), + selectinload(ApproveModel.apply_user_relationship), ) )