据我所知,
SQLmodel
部分基于
pydantic
尽管如此,当使用
Field
函数来自
SQL模型
在里面
FastAPI
。
例如,查看以下示例:
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
在
test
端点正确返回
{"nullable_param":3}
然而
OpenAPI
规范
Model
如下所示:
{
"Model":{
"title":"Model",
"type":"object",
"properties":{
"nullable_param":{"title":"Nullable Param","type":"integer"}
}
}
}
请注意
nullable_param
缺少
nullable=true
属性
当我导入时
领域
直接来自
pydantic
(
from pydantic import Field
),它
做
包括此属性:
{
"Model":{
"title":"Model",
"type":"object",
"properties":{
"nullable_param":{ "title":"Nullable Param", "type":"integer", "nullable":true }
}
}
}
我做错了什么吗,或者
领域
的实施
SQLModel
在
FastAPI
上下文
pydantic 1.8.2
fastapi 0.74.1
sqlmodel 0.0.6
python 3.8.12