作为表单域的管理自定义枚举类型

2024-05-16 18:32:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为featureflag表创建一个模型表单。在featureflag表中,我有一个UnicodeTextEnum(FeatureFlagType)类型的字段

class UnicodeTextEnum(TypeDecorator):
    impl = UnicodeText

    def __init__(self, enumtype, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.enum_class = enumtype

    def process_bind_param(self, value, _):
        """Validates value is of enum but allows None to pass through"""
        return self.enum_class(value).value if value else value

    def process_result_value(self, value, _):
        return self.enum_class(value) if value else value

    def process_literal_param(self, value, _):
        return str(value)

    @property
    def python_type(self):
        return self.impl.type.python_type


class FeatureFlagType(aenum.Enum):
    _init_ = 'value'

    frontend = 'FE'
    backend = 'BE'

我想基本上有一个表单字段,它是每个枚举字段的复选框,所以BE和FE,如果你打开一个,另一个就关闭了。有没有人有什么好的例子来说明如何创建这样的自定义表单类型


Tags: self表单类型returninitvaluedeftype