"Неизвестный тип \" CreateAccountInput \ ". С graphene_django при попытке изменить / создать новый объект - PullRequest
0 голосов
/ 07 января 2019

Я новичок в GraphQL, и я только что пытался создать новый объект учетной записи с ним. Это мой код прямо сейчас, но это графический интерфейс для GraphQL. Я получаю сообщение об ошибке «Неизвестный тип \» CreateAccountInput ».

schema.py

from authentication.models import Account
import graphene
from graphene import relay, ObjectType
from graphene_django import DjangoObjectType
from graphene import InputObjectType

class AccountGraphQL(DjangoObjectType):
    class Meta:
        model = Account
        interfaces = (relay.Node, )

class Query(graphene.ObjectType):
    username = graphene.String(argument=graphene.String(default_value="stranger"))
    email = graphene.String(argument=graphene.String(default_value="stranger"))
    password = graphene.String(argument=graphene.String(default_value="stranger"))
    first_name = graphene.String(argument=graphene.String(default_value="stranger"))

    info = graphene.String()

    def def_resolve_create_account(self, info, argument):
        return account.objects.create_user()

class CreateAccountInput(InputObjectType):
    username = graphene.String(argument=graphene.String(default_value="stranger"))
    email = graphene.String(argument=graphene.String(default_value="stranger"))
    password = graphene.String(argument=graphene.String(default_value="stranger"))
    first_name = graphene.String(argument=graphene.String(default_value="stranger"))


class CreateAccount(relay.ClientIDMutation):

    class Input:
        account = graphene.Argument(CreateAccountInput)

    new_account = graphene.Field(AccountGraphQL)

    @classmethod
    def mutate_and_get_payload(cls, args, context, info):
        account_data = args.get('account') # get account data from args
        account = Account()
        new_account = update_create_instance(account, account_data)

        return cls(new_account=new_account)

class Mutation(ObjectType):
    create_account = CreateAccount.Field()

schema = graphene.Schema(query=Query)
result = schema.execute('{ create_account (argument: "graphql"')

моя мутация:

mutation CreateNewAccount($input: CreateAccountInput!) {
  createAccount(input: $input) {
    newAccount {
      username
      email
      password
      first_name
    }
    clientMutationId
  }
}

мой запрос

{"input": {"account": 
  {
    "username": "graphql",
    "email": "graphql@gmail.com",
    "password": "graphql",
    "first_name":"charles"
  }
}}

Я не уверен, в чем здесь проблема, насколько я понимаю, я определил тип ввода

...