Quy*_*ang 4 graphql graphene-python
我想使用石墨烯一口气创造出很多人。该文档仅提及创建这样的人的方式:
class CreatePerson(graphene.Mutation):
class Input:
name = graphene.String()
age = graphene.Int()
ok = graphene.Boolean()
person = graphene.Field(lambda: Person)
@staticmethod
def mutate(root, args, context, info):
person = Person(name=args.get('name'), age=args.get('age'), mobile=args.get('mobile'))
ok = True
return CreatePerson(person=person, ok=ok)
Run Code Online (Sandbox Code Playgroud)
有什么方法可以完成它吗?
除了使用一种创建对象列表的变异之外,您还可以在一个GraphQL请求中调用一种可以多次创建一个对象的变异。这是使用GraphQL别名完成的:
mutation {
c001: createPerson(
name: "Donald Duck"
age: 42
) {
id
}
c002: createPerson(
name: "Daisy Duck"
age: 43
) {
id
}
c003: createPerson(
name: "Mickey Mouse"
age: 44
) {
id
}
}
Run Code Online (Sandbox Code Playgroud)
我可以根据Jan Han\xc4\x8di\xc4\x8d的答案找出解决方案
\n\n在这种情况下有一种类型称为graphene.InputObjectType使用
解决方案可以是
\n\nclass PersonInput(InputObjectType):\n name = graphene.String()\n age = graphene.Int()\n\nclass CreatePeople(graphene.Mutation):\n class Input:\n people = graphene.List(PersonInput)\n\n people = graphene.List(lambda: Person)\n\n @staticmethod\n def mutate(root, args, context, info):\n people = [Person.objects.create(name=person.name, age=person.age) for person in args.get(\'people\')]\n return CreatePeople(people=people)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1829 次 |
| 最近记录: |