我遇到了以下问题,但不知道如何解决: 如何在 job.py 中添加生成的 Id 并将其设置为 JobResponse 中的值 job_id?
这是我的函数 job.py
from fastapi import FastAPI
from models import JobResponse, JobRequest
app = FastAPI()
@app.post('/job', response_model=JobResponse)
async def create_user(job: JobRequest):
id = return_id_from_database
return job
models.py:
from pydantic import BaseModel
from typing import Optional
class JobRequest(BaseModel):
job_name: Optional[str] = None
class JobResponse(BaseModel):
job_id: Optional[str] = None
job_name: Optional[str] = None
答案 0 :(得分:0)
正如评论中所承诺的,我的建议很有用,因此我也在为其他人写一个正确的答案。
解决方案相当简单,因为 Fastapi
期望函数 create_user
返回一个可序列化为 JSON
的对象,并且符合声明为的 Pydantic
模型的定义返回值。
from fastapi import FastAPI
from models import JobResponse, JobRequest
app = FastAPI()
@app.post('/job', response_model=JobResponse)
async def create_user(job: JobRequest):
id = return_id_from_database
return new JobResponse(**job.to_dict(), job_id=id)
from pydantic import BaseModel
from typing import Optional
class JobRequest(BaseModel):
job_name: Optional[str] = None
class JobResponse(JobRequest):
job_id: Optional[str] = None