我试图用定义的字段名称而不是别名返回我的模型。
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)
我觉得应该可以在配置类 https://pydantic-docs.helpmanual.io/usage/model_config/,但我找不到正确的选项。
你可以加response_model_by_alias=False
到路径操作装饰器。提到了这个关键here https://fastapi.tiangolo.com/tutorial/response-model/?h=response_model_by_alias#response_model_include-and-response_model_exclude在文档中。
例如:
@app.get("/model", response_model=Model, response_model_by_alias=False)
def read_model():
return Model(alias="Foo")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)