簡體   English   中英

名稱為“date”的字段在 pydantic 中不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM