FastAPI - 未填充 ENUM 类型模型

Vam*_*hna 4 python swagger openapi pydantic fastapi

下面是我的 fastAPI 代码

from typing import Optional, Set

from fastapi import FastAPI
from pydantic import BaseModel, HttpUrl, Field
from enum import Enum

app = FastAPI()


class Status(Enum):
    RECEIVED = 'RECEIVED'
    CREATED = 'CREATED'
    CREATE_ERROR = 'CREATE_ERROR'


class Item(BaseModel):
    name: str
    description: Optional[str] = None
    price: float
    tax: Optional[float] = None
    tags: Set[str] = []
    status: Status = None


@app.put("/items/{item_id}")
async def update_item(item_id: int, item: Item):
    results = {"item_id": item_id, "item": item}
    return results
Run Code Online (Sandbox Code Playgroud)

下面是生成的 swagger 文档。状态未显示。我是 pydantic 的新手,我不确定如何在文档中显示状态

在此处输入图片说明

JPG*_*JPG 12

Status通过继承str和创建类Enum

class Status(str, Enum):
    RECEIVED = 'RECEIVED'
    CREATED = 'CREATED'
    CREATE_ERROR = 'CREATE_ERROR'
Run Code Online (Sandbox Code Playgroud)

参考

  1. 使用 Python 枚举--(FastAPI 文档)
  2. [BUG] 文档不显示正文的嵌套枚举属性--(问题#329)