名称为“date”的字段在 pydantic 中不起作用

Kam*_*mal 0 python pydantic fastapi

我正在使用 FastAPI,创建一个 pydantic 模型,其中“日期”作为字段之一的名称。我注意到这会给出错误,生成的架构上显示的类型将为空。我找到了解决此问题的方法,但我想知道为什么我不能首先使用这个“日期”名称。

from datetime import date
from fastapi import FastAPI
from pydantic import BaseModel, Field

class Item(BaseModel):
    # d: date = None # works fine
    # date: date = None # does not work
    d: date = Field(..., alias="date") # the workaround

app = FastAPI()

@app.post("/items/")
async def create_item(item: Item):
    return item
Run Code Online (Sandbox Code Playgroud)

小智 11

您正在date从导入datetime

所以当你date在代码中使用时,它实际上是模块date的类datetime。所以你不能简单地将它用作变量名。

我建议你将日期导入为其他内容

例如:from datetime import date as date_type