Отсутствие функций @property из metaclas в моем Enum, что я делаю не так?

Мне не очень нравится деталь реализации от Django ChoicesMeta, поэтому я хотел создать свой собственный метакласс enum, который бы исправил это поведение. По сути, вот что я написал:

from django.db.models.enums import ChoicesMeta as DjangoChoicesMeta

class ChoicesMeta(DjangoChoicesMeta):
    def __new__(metacls, classname, bases, classdict, **kwds):
        # Here the code to fix the behavior I don't like
        return super().__new__(metacls, classname, bases, classdict, **kwds)

class ChoiceEnum(Enum, metaclass=ChoicesMeta):
    pass

class SomeEnum(ChoiceEnum)
   ONE = "some enum value 1"
   TWO = "some enum value 2"

Но затем, когда я захотел использовать свойство .choices , которое происходит из django.db.models.enums.ChoiceMeta, я получил AttributeError:

File "/usr/lib64/python3.10/enum.py", line 437, in __getattr__
    raise AttributeError(name) from None
AttributeError: values

несмотря на то, что я могу получить доступ к свойству .__members__, которое исходит от родителя ChoiceMeta EnumMeta.

Может кто-нибудь подскажет, что я делаю не так?

Вернуться на верх