【发布时间】:2022-12-30 16:30:51
【问题描述】:
我是 Python 和 Fastapi 的新手。问题是每次我尝试发出发布请求时,Fastapi 响应主体架构都会向我显示此错误。首先,我打算使用十六进制函数将 uuid4 转换为字符串,然后在响应正文中显示转换后的输出。 我想要的是名为 api_key 的字段自动为每个输入记录生成动态默认 uuid(与 id 不同,而是一个存储唯一值的字段)
**
422 Unprocessable Entity
{
"detail": [
{
"loc": [
"body"
],
"msg": "'str' object is not callable",
"type": "type_error"
}
]
}**
这是我试过的代码:
class Terminal(BaseModel):
api_key: str = Field(title="api key", default_factory=uuid.uuid4().hex)
name: str = Field(..., title="Terminal name", regex="[^\s]+")
mac: MACAddressStr = Field(..., title="MAC address")
mgmt_ip: IPv4Address = Field(..., title="Management IP")
所有需要用户输入的字段都可以正常工作。 当我尝试手动输入 api_key 作为字符串时,它也有效。 我想要的输出:
{
"api_key": "5876753e02f141b5a83f7e9cff6db1ba" // auto-generated
"name": "terminal1",
"mac": "aa:bb:cc:dd:ee:ff",
"mgmt_ip": "1.1.1.1"
}
【问题讨论】:
标签: python string fastapi uuid pydantic