关键词:
【中文标题】石墨烯突变返回 400 - 不会正确传递 id 字段【英文标题】:graphene mutation returns 400 - won't pass id field properly 【发布时间】:2020-02-09 22:34:28 【问题描述】:我一直在 django 中使用带有 graphql 和 React 前端的石墨烯。
我可以让创建突变工作,但编辑不会 - 即使没有 $ 变量的查询在 graphiQL 中工作
我在 React 中的 gql const 是:
export const EDIT_PERSON = gql`
mutation personEdit($id: id, $input: PersonInputType!)
personEdit(id: id, input: $input)
person
id
`;
id 是从处理程序中设置的,表单中的提交函数如下所示:
<form
autoComplete="off"
onSubmit=e =>
e.preventDefault();
editPerson(
variables:
id: id,
input:
firstName: firstName,
lastName: lastName,
address: address
);
>
我在 django 中的 PersonEdit 突变看起来像:
class PersonEdit(Mutation):
class Arguments:
id = ID(required=True)
input = PersonEditInputType(required=True)
person = Field(PersonType)
@classmethod
def mutate(cls, root, info, **data):
serializer = PersonSerializer(data=data.get('input'))
serializer.is_valid(raise_exception=True)
person = Person.objects.get(id=data.get('id'))
print("PERSON", serializer.data)
person.first_name = serializer.data['first_name']
person.last_name = serializer.data['last_name']
person.address = serializer.data['address']
return PersonEdit(person=person.save())
为什么编辑不起作用?
【问题讨论】:
400 表示查询格式错误或验证失败。在浏览器的 DevTools 的“网络”选项卡中检查您从服务器获得的实际响应,以了解有关请求问题的详细信息。 是的,但为什么呢?这是因为第 4 个 id 前面没有 $ 【参考方案1】:你的变异应该是这样的
export const EDIT_PERSON = gql`
mutation personEdit($id: ID!, $input: PersonInputType!)
personEdit(id: $id, input: $input)
person
id
`;
这里应该是id: $id
而不是id: id
。
【讨论】:
是否有可能将对象数组(json)作为突变的输入字段传递?石墨烯-蟒蛇
...否有可能将对象数组(json)作为突变的输入字段传递?石墨烯-蟒蛇【英文标题】:istherepossiblechancetopassarrayofobjects(json)asinputfieldformutation?graphene-python【发布时间】:2018-06-1317:38:19【问题描述】:我正在尝试将json字段作为我的grap... 查看详情
以列表为输入的石墨烯突变
】以列表为输入的石墨烯突变【英文标题】:Graphenemutationwithlistasinput【发布时间】:2020-09-0720:42:30【问题描述】:我有一个这样的石墨烯突变:classUser(ObjectType):username=String()classImportUsers(Mutation):classArguments:users=List(User)Output=List(U... 查看详情
石墨烯的通用创建模型突变
】石墨烯的通用创建模型突变【英文标题】:GenericCreateModelMutationforGraphene【发布时间】:2020-04-0909:39:23【问题描述】:我正在尝试在石墨烯中为烧瓶应用程序创建某种通用的创建突变。为了创建一个突变,语法通常如下:classCre... 查看详情
具有多 InputObjectType 的石墨烯突变
】具有多InputObjectType的石墨烯突变【英文标题】:GraphenemutationwithmultiInputObjectType【发布时间】:2022-01-1715:28:37【问题描述】:我正在尝试将graphql服务器从@nestjs/graphql转换为pythongraphene。是否可以像这样在graphene中创建mutation类,... 查看详情
石墨烯突变未映射 SQLAlchemy 中的模型
】石墨烯突变未映射SQLAlchemy中的模型【英文标题】:GraphenemutationnotmappingModelsinSQLAlchemy【发布时间】:2017-08-2514:41:09【问题描述】:我正在尝试对使用SQLALCHEMY声明的用户模型执行突变。这是我的models.py文件的代码#blog/models.pyfroms... 查看详情
石墨烯突变教程不起作用
】石墨烯突变教程不起作用【英文标题】:GrapheneMutationTultorialnotworking【发布时间】:2018-12-0617:48:06【问题描述】:我已经开始学习GraphQL一周了,我最大的挑战是处理发布数据。我读过这都是关于突变的,但是我做的不对。我只... 查看详情
具有外键关系的对象的石墨烯中的 GraphQL 突变
】具有外键关系的对象的石墨烯中的GraphQL突变【英文标题】:GraphQLMutationinGrapheneforObjectwithForeignKeyRelation【发布时间】:2020-07-0305:24:59【问题描述】:我正在使用Python、GraphQL(graphene-django)和Django构建一个简单的CRUD接口。包含与... 查看详情
GraphQL 和石墨烯
】GraphQL和石墨烯【英文标题】:GraphQLandGraphene【发布时间】:2017-05-1118:03:51【问题描述】:我有一个具有一对多关系的数据库模式。例如一个部门有很多客户。是否有可能有一个突变来创建一个客户和一个部门并将它们关联起... 查看详情
如何在石墨烯中将函数作为查询结果返回?
】如何在石墨烯中将函数作为查询结果返回?【英文标题】:Howtoreturnafunctionasaqueryresultingraphene?【发布时间】:2020-11-3021:33:16【问题描述】:我有一个帖子模型,我想知道当前登录的用户是否喜欢该帖子:这样的事情会起作用吗... 查看详情
如何在石墨烯中返回字典列表?
】如何在石墨烯中返回字典列表?【英文标题】:howtoreturnalistofdictionaryingraphene?【发布时间】:2020-11-2514:13:07【问题描述】:我是graphql的新手,正在处理一些作为字典列表返回的数据集。sn-p代码:classPlayer(ObjectType):username=String(... 查看详情
如何覆盖石墨烯中的 DjangoModelFormMutation 字段类型?
】如何覆盖石墨烯中的DjangoModelFormMutation字段类型?【英文标题】:HowcanIoverrideaDjangoModelFormMutationfieldtypeingraphene?【发布时间】:2019-08-0808:00:18【问题描述】:我正在构建一个简单的配方存储应用程序,该应用程序将Graphene包用于... 查看详情
使用石墨烯在 Graphql 中返回字典而不是字符串
】使用石墨烯在Graphql中返回字典而不是字符串【英文标题】:ReturndictionaryinstedofstringinGraphqlusinggraphene【发布时间】:2020-03-2318:20:52【问题描述】:我希望我的graphql查询以字典的形式返回多个值,但我只能在字符串中返回字典。... 查看详情
返回 Django 石墨烯订阅中订阅事件的初始数据
】返回Django石墨烯订阅中订阅事件的初始数据【英文标题】:Returninitialdataonsubscribeeventindjangographenesubscriptions【发布时间】:2020-02-1523:49:06【问题描述】:我正在尝试在订阅时回复用户。例如,在聊天室中,当用户连接到订阅时... 查看详情
GraphQL + 中继 + 石墨烯
】GraphQL+中继+石墨烯【英文标题】:GraphQL+Relay+Graphene【发布时间】:2017-05-1306:41:36【问题描述】:classProduct(SQLAlchemyObjectType):classMeta:model=ProductModelinterfaces=(relay.Node,)@classmethoddefget_node(cls,id,context,info):#mustimpleme 查看详情
eos石墨烯介绍
...数据结构都是一棵树(考虑有分叉的情况),石墨烯的区块链也不例外,一个区块中包含上一个区块的id,每个区块的id为区块内容的MAC。block由blockheader和transactionlist构成。1.1blockheaderprevious:前一个块的idblock_nu... 查看详情
在突变中传递链接数组 [graphene/python/graphql]
...ql]【发布时间】:2021-06-3013:28:54【问题描述】:我对使用石墨烯有点困惑。我在https://www.howtographql.com/graphql-python/3-mutations/上使用突变示例,但这里仅显示如何创建ONE链接的 查看详情
如何允许石墨烯GraphQl中的任何字段过滤
】如何允许石墨烯GraphQl中的任何字段过滤【英文标题】:HowtoallowanyfieldfilteringingrapheneGraphQl【发布时间】:2021-10-2909:03:55【问题描述】:我想知道,是否有办法在石墨烯GraphQl解析器中传递更多要查询的参数。因此,此代码仅适... 查看详情
聚合石墨烯/django 查询中的字段
】聚合石墨烯/django查询中的字段【英文标题】:Aggregatingfieldsingraphene/djangoqueries【发布时间】:2020-08-1114:15:49【问题描述】:我正在编写一个石墨烯/djangoORM查询,我需要在我的所有查询结果对象上聚合特定字段的值并将其与查... 查看详情