Каков наилучший способ обработки условно обязательных аргументов в приложении FastAPI? - PullRequest
0 голосов
/ 19 марта 2020

Я занимаюсь разработкой приложения FastAPI. У меня со следующей схемой

class Address(BaseModel):
    address_string: str = Field(None)
    address_street: str = Field(None)
    addres_number: str = Field(None)

Мне бы хотелось, чтобы поле address_string требовалось условно, если address_street и addres_number отсутствуют, и наоборот, address_street и address_number требуются, если address_street нет.

В настоящее время я управляю этим, делая все поля необязательными и используя root_validator для проверки согласованности, и документируя это условное требование в описании соответствующих полей.

Существует ли более чистый способ управления этим встроенным в FastAPI?

1 Ответ

0 голосов
/ 19 марта 2020

Root валидаторы или валидаторы в необязательных полях являются решением проблемы.

Аналогичный пример для паролей здесь .

...