Как извлечь данные из списка диктов, используя метод мутации графена?
Я пытаюсь создать список объектов, используя graphql mutation
, но были неудачными. Я обнаружил ошибку, пожалуйста, посмотрите фрагменты кода и прокомментируйте, где распространяется ошибка.
Примечание: я использую графен на Flask с Python 2.7
Вот пример полезной нагрузки:
mutation UserMutation {
createUser(
phones: [
{
“number”: “609-777-7777”,
“label”: “home"
},
{
“number”: “609-777-7778”,
“label”: “mobile"
}
]
)
}
На схеме у меня есть следующее:
class CreateUser(graphene.Mutation):
ok = graphene.Boolean()
...
phones = graphene.List(graphene.String()) # this is a list of string but what I need is a list of dicts!
1 ответ
Решение
Для того чтобы иметь dict в качестве входа, вы должны использовать InputObjectType
, (InputObjectType
s похожи на ObjectTypes, но только для входных данных).
Этот пример должен работать с графеном 1.0
,
class PhoneInput(graphene.InputObjectType):
number = graphene.String()
label = graphene.String()
class CreateUser(graphene.Mutation):
class Input:
phones = graphene.List(PhoneInput)
ok = graphene.Boolean()
class Mutation(graphene.ObjectType):
create_user = CreateUser.Field()