更新时获取 GraphQlLocatedError

问题描述

我收到 Graphql 定位错误,但找不到问题所在。

graphql.error.located_error.GraphQLLocatedError: 'answers'

更新.py

import graphene
from graphene import relay
from django.db import transaction
from ...models import Question
from ..types import QuestionInput,QuestionNode


class UpdateQuestion(relay.ClientIDMutation):
    class Input:
        id = graphene.ID(required=True)
        question = graphene.String()
        answers = graphene.String()
        rightAnswer = graphene.String()
        category_id = graphene.Int()
        difficulty = graphene.String()

    updated_question = graphene.Field(QuestionNode)

    @classmethod
    def mutate_and_get_payload(cls,root,info,**input):
        with transaction.atomic():
            question = Question.objects.get(id=input["id"])
            if question is not None:

                question.question = input["question"]
                question.answers = input["answers"]
                question.rightAnswer = input["rightAnswer"]
                question.difficulty = input["difficulty"]
                question.save()
                question.category.add(input["category_id"])
                
            return UpdateQuestion(updated_question=question)
        return None

所有错误日志:

Traceback (most recent call last):
  File "/Users/puente/.local/share/virtualenvs/hhhh4-_HmWVXp8/lib/python3.7/site-packages/promise/promise.py",line 489,in _resolve_from_executor
    executor(resolve,reject)
  File "/Users/puente/.local/share/virtualenvs/hhhh4-_HmWVXp8/lib/python3.7/site-packages/promise/promise.py",line 756,in executor
    return resolve(f(*args,**kwargs))
  File "/Users/puente/.local/share/virtualenvs/hhhh4-_HmWVXp8/lib/python3.7/site-packages/graphql/execution/middleware.py",line 75,in make_it_promise
    return next(*args,**kwargs)
  File "/Users/puente/.local/share/virtualenvs/hhhh4-_HmWVXp8/lib/python3.7/site-packages/graphene/relay/mutation.py",line 70,in mutate
    result = cls.mutate_and_get_payload(root,**input)
  File "/Users/puente/Projects/hhhh4/mysite/quiz/questions/schema/mutations/question_update.py",line 28,in mutate_and_get_payload
    question.answers = input["answers"]
graphql.error.located_error.GraphQLLocatedError: 'answers'

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)