Graphene Enums не работают при использовании без создания нового класса

Из документации очевидно, что мы не обязаны создавать новые классы для использования Enums.

У меня есть следующий фрагмент кода:

from graphene import Enum, InputObjectType

GRAPH_TYPES = [
    ('step', 'Step graph'),
    ('bar', 'Bar graph'),
    ('line', 'Line graph'),
    ('dot', 'Dot graph'),
]


class DataType(Enum):
    VELOCITY = 'velocity'
    ACCELERATION = 'accelration'


class SomeInput(InputObjectType):
    data_type = DataType('DataTypeEnum')
    graph_type = Enum('GraphTypeEnum', GRAPH_TYPES)

Когда я перехожу к GraphiQL, я могу видеть SomeInput, но graph_type отсутствует внутри.

Версии пакетов:

  • graphene-django==2.12.1
  • graphene==2.1.8

Для тех, кто наткнется на это, выяснится, что это что-то связанное с инициализацией объявленного Enum.

Инлайн декларация Enum('GraphTypeEnum', GRAPH_TYPES) должна быть обновлена следующим образом:

Enum('GraphTypeEnum', GRAPH_TYPES)().

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