5

我正在尝试使用创建对象列表graphql mutation,但没有成功。我已经确定了错误,请查看代码片段并评论错误传播的位置。

注意:我在 Flask 上使用Graphene和 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!
4

1 回答 1

7

要将 dict 作为输入,您需要使用InputObjectType. (InputObjectTypes 类似于 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()
于 2016-09-20T02:03:35.000 回答