Есть задача при регистрации пользователя (использую fastapi-users) отправить аватарку на сервер, а в БД записать путь к этой аватарке.
Но вот не могу понять как в одном эндпоинте обработать и Pydantic схему и файл...
Вот к примеру пытаюсь сделать так.
from pydantic import BaseModel
from fastapi import FastAPI, File, UploadFile
app = FastAPI()
class Item(BaseModel):
name: str
description: str
@app.post('/files')
async def create_file(
item: Item,
file: UploadFile = File(...)
):
return {
"item": item,
"filename": file.filename,
}
Но в свагере появляется такая ошибка:
{
"detail": [
{
"type": "model_attributes_type",
"loc": [
"body",
"item"
],
"msg": "Input should be a valid dictionary or object to extract fields from",
"input": "{\r\n \"name\": \"string\",\r\n \"description\": \"string\"\r\n}",
"url": "https://errors.pydantic.dev/2.5/v/model_attributes_type"
}
]
}
Ожидается словарь или объект, а передается строчка. Хочу чтоб и JSON нормально валидировался и файл сохранился на сервере.