[英]field with name “date” does not work in pydantic
我正在使用 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
您正在從datetime
導入date
。
所以當你在代碼中使用date
時,它實際上是datetime
模塊的date
類。 所以你不能簡單地將它用作變量名。
我建議你導入日期作為其他東西
例如: from datetime import date as date_type
這應該有效,
from datetime import date
from pydantic import BaseModel
class Item(BaseModel):
date: date
如果您希望date
是可選的,請使用Optional
類型提示作為
from datetime import date
from pydantic import BaseModel
from typing import Optional
class Item(BaseModel):
date: Optional[date]
那是因為None
類型不是date
對象。
如果你想要一個可為空的日期,你可以使用Optional
來做到這一點。
from datetime import date
from pydantic import BaseModel
from typing import Optional
class Item(BaseModel):
your_variable_name: Optional[date] = None
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.