gpt4 book ai didi

python - "Unknown type\"CreateAccountInput\". 尝试变异/创建新对象时使用 graphene_django

转载 作者:行者123 更新时间:2023-12-05 07:27:03 24 4
gpt4 key购买 nike

我是 graphQL 的新手,我一直在尝试用它创建一个新的帐户对象。这是我现在的代码,但它是 graphQL 的 GUI,我不断收到“未知类型\”CreateAccountInput“错误。

架构.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"
}
}}

我不确定这里的问题是什么,就我而言我已经定义了输入类型

最佳答案

对于使用 graphQL 的用户注册,您可以使用 django-graphql-auth .

这是来自 docs 的演示:

包括用户注册和账号验证

(在新标签页打开视频)

Demo Video

这个包是我写的,有什么问题可以私信我

关于python - "Unknown type\"CreateAccountInput\". 尝试变异/创建新对象时使用 graphene_django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54068106/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com