Разрешить только определенные поля пидантической модели быть переданы в конечную точку FASTAPIPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Разрешить только определенные поля пидантической модели быть переданы в конечную точку FASTAPI

Сообщение Anonymous »

Допустим, у меня есть модель пиданта с проверкой: < /p>

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

Name = Annotated[str, AfterValidator(validate_name)]

class Foo(BaseModel):
id: UUID = Field(default_factory=uuid4)
name: Name
< /code>
и конечная точка Fastapi: < /p>
@app.post('/foos')
def create_foo(foo: Foo) -> Foo:
save_to_database(foo)
return foo
Я хочу, чтобы абонент имел возможность передать значение для имени , но не для идентификатора . Есть ли способ сделать что -то подобное? < /P>

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

def create_foo(foo: Annotated[Foo, Body(include=['id'])]) -> Foo:
< /code>
Я знаю, что могу сделать: < /p>
@app.post('/foos')
def create_foo(name: Annotated[str, Body(embed=True)]) -> Foo:
foo = Foo(name=name)
save_to_database(foo)
return foo
Но тогда неявная обработка ошибок проверки больше не работает, и мне нужно добавить больше кода для этого.
Любой элегантный способ обработки?

Подробнее здесь: https://stackoverflow.com/questions/785 ... i-endpoint
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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