繁体   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