首页 > 解决方案 > 如何为 Pydantic/FastAPI 的枚举类设置默认值

问题描述

我试图找到一种方法来为EnumPydantic 和 FastAPI 文档上的类设置默认值,但我找不到如何做到这一点。这是我的枚举类:

class ConnectionStatus(str,Enum):
    active:"active"
    inactive:"inactive"
    deprecated:"deprecated"

例如,我想将其active设为默认值。谢谢 :)

标签: pythonenumsfastapipydantic

解决方案


首先,您的枚举类有一些语法错误,它应该是=而不是:. 因此,你的ConnectionStatus意志成为,

class ConnectionStatus(str, Enum):
    active = 'active'
    inactive = 'inactive'
    deprecated = 'deprecated'

并设置默认值,使用下面的代码片段

from fastapi import FastAPI
from pydantic import BaseModel
from enum import Enum

app = FastAPI()


class ConnectionStatus(str, Enum):
    active = 'active'
    inactive = 'inactive'
    deprecated = 'deprecated'


class SomeModel(BaseModel):
    status: ConnectionStatus = ConnectionStatus.active


@app.post("/")
async def some_route(data: SomeModel):
    return data

参考:枚举和选择 - Pydantic Doc


推荐阅读