簡體   English   中英

返回帶有字段名稱而不是別名的 pydantic 模型作為 fastapi 響應

[英]return pydantic model with field names instead of alias as fastapi response

我正在嘗試使用定義的字段名稱而不是別名返回我的模型。

class FooModel(BaseModel):
    foo: str = Field(..., alias="bar")

@app.get("/") -> FooModel:
    return FooModel(**{"bar": "baz"})

響應將是{"bar": "baz"}而我想要{"foo": "baz"} 我知道在使用模型的dict方法時有點可能,但是感覺不對並且弄亂了請求處理程序的輸入。

@app.get("/") -> FooModel:
    return FooModel(**{"bar": "baz"}).dict(by_alias=False)

我覺得應該可以在config class 中設置它,但我找不到正確的選項。

您可以將response_model_by_alias=False添加到路徑操作裝飾器。 此處在文檔中提到此密鑰。

例如:

@app.get("/model", response_model=Model, response_model_by_alias=False)
def read_model():
    return Model(alias="Foo")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM