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)()
.