0

据我所知,SQLmodel部分基于pydantic. 不过,当使用in 中的Field函数时,我得到了不同的结果 OpenAPI 规范。SQLmodelFastAPI

例如,看下面的例子:

from typing import Optional
from fastapi import FastAPI
from sqlmodel import Field, SQLModel

app = FastAPI()

class Model(SQLModel):
    nullable_param: Optional[int] = Field(None, nullable=True)

@app.get("/test", response_model=Model)
def foo():
    return Model(nullable_param=3)

此代码运行并且端点GET上的a 正确返回。但是,生成的规范如下:test{"nullable_param":3}OpenAPIModel

{
    "Model":{
        "title":"Model",
        "type":"object",
        "properties":{
            "nullable_param":{"title":"Nullable Param","type":"integer"}
        }
    }
}

注意nullable_param缺少nullable=true属性!

Field当我直接从pydantic( )导入时from pydantic import Field,它确实包含此属性:

{
    "Model":{
        "title":"Model",
        "type":"object",
        "properties":{
             "nullable_param":{ "title":"Nullable Param", "type":"integer", "nullable":true }
        }
    }
}

我做错了什么,还是在上下文中的Field实现中可能存在错误?SQLModelFastAPI

pydantic 1.8.2 fastapi 0.74.1 sqlmodel 0.0.6 python 3.8.12

4

0 回答 0