石墨烯突变教程不起作用

Posted

技术标签:

【中文标题】石墨烯突变教程不起作用【英文标题】:Graphene Mutation Tultorial not working 【发布时间】:2018-12-06 17:48:06 【问题描述】:

我已经开始学习 GraphQL 一周了, 我最大的挑战是处理发布数据。 我读过这都是关于突变的,但是我做的不对。 我只是想将幸存者(我的模型)对象发布到我的数据库 这是代码: 这是应用程序的架构

import graphene
from graphene import relay, ObjectType

from graphene_django.types import DjangoObjectType
from graphene_django.filter import DjangoFilterConnectionField

from .models import Survivor

class SurvivorNode(DjangoObjectType):
    class Meta:
        model = Survivor
        filter_fields = ['name']
        interfaces = (relay.Node, )



class SurvivorInput(graphene.InputObjectType):

    name = graphene.String(required=True)
    age = graphene.Int(required=True)


class AddSurvival(graphene.Mutation):
    class Arguments:
        survivor_data = SurvivorInput()

    survivor = graphene.Field(SurvivorNode)

    @staticmethod
    def mutate(root,info,survivor_data):
        survivor=Survivor(
            name = survivor_data.name,
            age = survivor_data.age
        )

        return AddSurvival(survivor = survivor)



class Query(object):
    all_survivors = DjangoFilterConnectionField(SurvivorNode)
    survivor = relay.Node.Field(SurvivorNode)

请大家告诉我怎么了?

我应该怎么做?

【问题讨论】:

【参考方案1】:

在mutate方法中你需要改变

survivor=Survivor(
            name = survivor_data.name,
            age = survivor_data.age
        )

到这里

survivor=Survivor.objects.create(
            name = survivor_data.name,
            age = survivor_data.age
        )

因为您想创建 Survivor 类型的新对象。

【讨论】:

以上是关于石墨烯突变教程不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在石墨烯中返回字典列表?

只靠石墨烯电池,撑不起两轮电动车的“高端梦”

只靠石墨烯电池,撑不起两轮电动车的“高端梦”

以列表为输入的石墨烯突变

石墨烯的通用创建模型突变

石墨烯突变返回 400 - 不会正确传递 id 字段