Pydantic отдельная проверка схемы от логической/функциональной проверкиPython

Программы на Python
Ответить
Anonymous
 Pydantic отдельная проверка схемы от логической/функциональной проверки

Сообщение Anonymous »

Предположим, у меня есть эта модель:

Код: Выделить всё

class User(BaseModel):
name: str
email: EmailStr
phone_number: str
job_title: str
company: str
salary: int

@field_validator('company')
def valid_company(cls, company: str) -> str:
# validate that the company exists...
return company
Однако я хочу предоставить разработчику возможность проверять схему и логику отдельно.
Я думал об этом :

Код: Выделить всё

class User(BaseModel):
name: str
email: EmailStr
phone_number: str
job_title: str
company: str
salary: int

class UserValidator(User):
@field_validator('company')
def valid_company(cls, company: str) -> str:
# validate that the company exists...
return company
Таким образом, разработчик может использовать User vs UserValidator для проверки схемы и логики.
Однако модель User используется в других моделях также. Поэтому мне приходится переопределить некоторые поля для некоторых моделей, например:

Код: Выделить всё

class Account(BaseModel):
user: User
...

class AccountValidator(Account):
user: UserValidator

custom_validators...
Есть ли лучший способ сделать это? Может быть, даже использовать другую библиотеку?

Подробнее здесь: https://stackoverflow.com/questions/790 ... validation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»