Fix pydantic field and model validator (#427)

This commit is contained in:
Wu Clan
2024-09-21 17:59:52 +08:00
committed by GitHub
parent 8da993655b
commit 23d9d17d9f
2 changed files with 8 additions and 6 deletions
+6 -5
View File
@@ -3,6 +3,7 @@
from datetime import datetime from datetime import datetime
from pydantic import ConfigDict, EmailStr, Field, HttpUrl, model_validator from pydantic import ConfigDict, EmailStr, Field, HttpUrl, model_validator
from typing_extensions import Self
from backend.app.admin.schema.dept import GetDeptListDetails from backend.app.admin.schema.dept import GetDeptListDetails
from backend.app.admin.schema.role import GetRoleListDetails from backend.app.admin.schema.role import GetRoleListDetails
@@ -21,21 +22,21 @@ class AuthLoginParam(AuthSchemaBase):
class RegisterUserParam(AuthSchemaBase): class RegisterUserParam(AuthSchemaBase):
nickname: str | None = None nickname: str | None = None
email: EmailStr = Field(..., example='user@example.com') email: EmailStr = Field(..., examples=['user@example.com'])
class AddUserParam(AuthSchemaBase): class AddUserParam(AuthSchemaBase):
dept_id: int dept_id: int
roles: list[int] roles: list[int]
nickname: str | None = None nickname: str | None = None
email: EmailStr = Field(..., example='user@example.com') email: EmailStr = Field(..., examples=['user@example.com'])
class UserInfoSchemaBase(SchemaBase): class UserInfoSchemaBase(SchemaBase):
dept_id: int | None = None dept_id: int | None = None
username: str username: str
nickname: str nickname: str
email: EmailStr = Field(..., example='user@example.com') email: EmailStr = Field(..., examples=['user@example.com'])
phone: CustomPhoneNumber | None = None phone: CustomPhoneNumber | None = None
@@ -80,7 +81,7 @@ class GetCurrentUserInfoDetail(GetUserInfoListDetails):
roles: list[GetRoleListDetails] | list[str] | None = None roles: list[GetRoleListDetails] | list[str] | None = None
@model_validator(mode='after') @model_validator(mode='after')
def handel(self, values): def handel(self) -> Self:
"""处理部门和角色""" """处理部门和角色"""
dept = self.dept dept = self.dept
if dept: if dept:
@@ -88,7 +89,7 @@ class GetCurrentUserInfoDetail(GetUserInfoListDetails):
roles = self.roles roles = self.roles
if roles: if roles:
self.roles = [role.name for role in roles] # type: ignore self.roles = [role.name for role in roles] # type: ignore
return values return self
class CurrentUserIns(GetUserInfoListDetails): class CurrentUserIns(GetUserInfoListDetails):
+2 -1
View File
@@ -3,6 +3,7 @@
from datetime import datetime from datetime import datetime
from pydantic import ConfigDict, Field, model_validator from pydantic import ConfigDict, Field, model_validator
from typing_extensions import Self
from backend.app.generator.schema.gen_model import GetGenModelListDetails from backend.app.generator.schema.gen_model import GetGenModelListDetails
from backend.common.schema import SchemaBase from backend.common.schema import SchemaBase
@@ -21,7 +22,7 @@ class GenBusinessSchemaBase(SchemaBase):
remark: str | None = None remark: str | None = None
@model_validator(mode='after') @model_validator(mode='after')
def check_schema_name(self): def check_schema_name(self) -> Self:
if self.schema_name is None: if self.schema_name is None:
self.schema_name = self.table_name_en self.schema_name = self.table_name_en
return self return self