тем, что модель либы не убирает с тело запроса ненужные элементы? То есть, например, у меня модель
class Item(ormar.Model):
id: int = ormar.Integer(primary_key=True)
name: str = ormar.String(max_length=100)
И когда я использую её как параметр к функции
@app.post("/items/", response_model=Item)
async def create_item(item: Item):
await item.save()
return item
То если написать в запросе, например:
{
"first_name": "123"
}
Выбивается ошибка ormar.exceptions.ModelError: Unknown field 'first_name' for model Item
Хотя если создать pydantic модель и использовать её в запросе, то всё проходит нормально, возвращается ошибка о том, что в теле запроса отсутствует "name", а "first_name" просто игнорируется
Самы простой вариант на мой взгляд определить app.exception_handler для ormar.exceptions.ModelError https://fastapi.tiangolo.com/tutorial/handling-errors/
Хорошая вещь, возьму на заметку, но мне кажется под мою проблему не подходит. Ошибка говорит о том, что в таблице Item нет поля first_name, а хэндлить это как то странно, возвращать это ошибку нет смысла, она же ничего не скажет фронту. Я сейчас поковыряюсь с этим, но не думаю что можно что-то из этого сделать, но все равно больше спасибо, не знал что есть хэндлер такой
Обсуждают сегодня