В частности, я хочу, чтобы поле cpf было обязательным только в том случае, если для поля страны установлено значение «BR». Для любой другой страны cpf должен быть необязательным.
Вот моя текущая модель:
Код: Выделить всё
from pydantic import BaseModel, field_validator
from typing import Literal, Optional
from brazilian.pydantic import CPFModel
class User(BaseModel):
username: str
country: Literal["BR", "US", "PT"]
cpf: Optional[CPFModel] = None
Я пробовал использовать @field_validator для cpf, но оно не запускается, если поле cpf опущено во входных данных.
Каков правильный идиоматический способ в Pydantic V2 реализовать такой вид проверки между полями, при котором присутствие одного поля зависит от значения другого? Я видел упоминание @model_validator, но не знаю, как его правильно применить в этом случае.
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/798 ... ther-field
Мобильная версия