首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在单个GraphQL变异中返回已删除对象的数组(石墨烯-django)

在单个GraphQL变异中返回已删除对象的数组(石墨烯-django)

在GraphQL中,一个变异(Mutation)是用于修改数据的操作。石墨烯(Graphene)是一个用于构建GraphQL API的Python库,而Django是一个流行的Python Web框架。因此,如果我们想要在单个GraphQL变异中返回已删除对象的数组,可以使用石墨烯与Django的结合。

首先,我们需要定义一个变异类型(Mutation Type)来表示删除操作。在该变异类型中,我们可以指定删除的对象类型以及相关参数。

示例代码如下:

代码语言:txt
复制
from graphene import ObjectType, String, List, Field
from graphene_django import DjangoObjectType, DjangoListField
from graphene_django.filter import DjangoFilterConnectionField
from .models import YourModel

class YourModelType(DjangoObjectType):
    class Meta:
        model = YourModel
        fields = ("id", "name")  # 根据实际需求指定需要的字段

class DeleteObjectsMutation(ObjectType):
    deleted_objects = List(YourModelType)

    class Arguments:
        object_ids = List(String)

    def mutate(root, info, object_ids):
        deleted_objects = YourModel.objects.filter(id__in=object_ids)
        deleted_objects.delete()

        return DeleteObjectsMutation(deleted_objects=deleted_objects)

class Mutation(ObjectType):
    delete_objects = DeleteObjectsMutation.Field()

class Query(ObjectType):
    your_objects = DjangoFilterConnectionField(YourModelType)

schema = graphene.Schema(query=Query, mutation=Mutation)

在上述代码中,我们首先定义了一个YourModelType来表示需要删除的对象类型,它继承自DjangoObjectType。然后,我们定义了一个DeleteObjectsMutation来表示删除操作的变异类型。其中,deleted_objects是一个包含被删除对象的列表。

DeleteObjectsMutation中,我们定义了一个Arguments类,其中包含了一个名为object_ids的参数,它用于接收需要删除的对象的ID。在mutate方法中,我们首先通过传入的object_ids参数获取要删除的对象列表,然后进行删除操作,并将删除的对象列表赋值给deleted_objects。最后,我们返回一个DeleteObjectsMutation实例,其中包含了被删除的对象列表。

接下来,我们需要定义一个根级的Mutation类型,并将DeleteObjectsMutation添加到其中。同时,我们也定义了一个根级的Query类型,用于查询对象列表。

使用上述代码,我们可以通过执行如下GraphQL查询来删除对象并返回已删除对象的数组:

代码语言:txt
复制
mutation {
  deleteObjects(objectIds: ["1", "2", "3"]) {
    deletedObjects {
      id
      name
    }
  }
}

上述查询中,我们通过deleteObjects变异来删除具有ID为1、2和3的对象,并返回已删除对象的ID和名称。

这是一个简单的例子,你可以根据实际需求进行修改和扩展。关于石墨烯和Django的更多信息,请参考腾讯云文档中的相关链接。

参考链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

一天两登Nature,还都是一作!95后天才少年再次引全球热议,被称“海啸级”后浪

5月6日,最新一期《Nature》上,96年出生“天才少年”曹原与其博导Pablo Jarillo-Herrero背靠背连发两篇Nature文章,介绍了魔角石墨取得系列新进展。...能让Nature两篇连发研究本身究竟有何魅力,石墨领域得到了怎样研究结果,和文摘菌一起来看看。...据我这几年观察,基础学科很久没有出现过单个工作产生如此大影响力事件了。之前nature人物多是成名大师,一个充分竞争领域耕耘很多年,但这次这个工作实在属于平地惊雷,出乎所有人意料。...石墨"魔角"也登上了当时《自然》杂志十大人物特刊封面图。 曹原石墨驾驭者”这一称号,也由此得来。 再来聊聊“石墨”这种神奇材料。...根据知乎匿名用户回答,曹原第一篇论文主要回答了“两个双层石墨扭转之后会产生什么样新奇物态”问题。

47430

95后“石墨驾驭者”王者归来!一天内喜提两篇Nature!

5月7日,被誉为“天才少年”、“石墨驾驭者”95后博士曹原分别以第一作者兼共同通讯作者、以及共同第一作者身份,Nature上连发2篇论文。...他们采用了一种全新魔角石墨体系:基于小角度扭曲双层-双层石墨(TBBG)。...2018年3月,《自然》同一期发表了有关石墨导电性两篇重要论文。“这两篇文章第一作者都是曹原,这也是十分罕见。”曾长淦说。...“之前,有科学家预言,魔角层叠后石墨可能会有奇异现象,但超导还是有点出乎意料。”曾长淦说。当石墨以魔角层叠后首先会形成一个新量子态,即强关联绝缘态。...曾长淦说,曹原这一能力中国科大本科期间就展露。他平时喜欢天文摄影,经常自己组装仪器,微信朋友圈可以看到他拍摄星云照片。曹原还喜欢计算机上画漫画,也有同龄人一些相同爱好。 ?

70020
  • GraphQL 查询你 Django 应用

    但是也许某一天,我们需要一个评论精简列表 API,当前返回内容,除了 content 以外其他字段都变成多余了,那么后端开发需要重新定一个 MinimalCommentSerializer 来满足新需求... REST 基础,我们增加了 fields 参数,并在 DRF Serializer 里做了特殊处理(你可以点击查看源码),实现具体效果: # 查询 comment,并限制结果返回字段 /api/... REST ,为了这个需求我们可能会额外为 /users 增加一个参数 with_comments # 查询 users,并限制结果返回字段 /api/users?...基于 REST ,单个请求只能针对单个对象进行描述。需要等待需求沉淀,由后端主动封装,迭代节奏会更慢。 什么是 GraphQL 客户端?...comments = DjangoListObjectField(CommentListType, description="Query all comments") 支持复杂过滤查询 可以列表对象增加

    2K60

    【译】十张图看懂3D打印未来

    另一种开始3D印刷中使用材料是玻璃。这种玻璃花瓶是美国麻省理工学院研究人员众多产品一个。...机器先以高达1165摄氏度加热玻璃,使之熔化,随后逐渐降低温度,以除去气泡,减少应力,并防止玻璃在打印失去其形状。 5、石墨3D打印 ?...(图片:伦敦帝国学院/华威大学) 石墨做为一种神奇新材料赢得了声誉,它具有高强度、低重量和导电等特性。...该材料有望开发新电子产品扮演重要角色,因此人们进行了大量研究,如何3D打印石墨结构产品。...重复该过程,直到打印完成并删除多余材料。 迪斯尼研究所表示,打印机可以一个单一对象混合两种类型材料,由此可制造结合嵌入式电路打印织物。 10、耳目一新:3D打印“变形金刚” ?

    755150

    API接口架构REST vs GraphQL

    然后一个 REST API 就完成了 GET/api/articles,它以 JSON 数组形式返回所需数据,如下例所示: // GET /articles [ { "id": 1, "title"...这些冗余数据频繁调用和发送大量数据时候会造成服务器资源浪费。 嵌套数据 有些时候我们通过一个接口要返回更多数据时候,我们就会使用嵌套数据。 例如,我们可能需要一个带有嵌套评论文章。...这可以包括特定字段,甚至嵌套对象。我们之前看到必须在模式上定义操作。但是,在这些操作,我们可以指定我们希望查询返回到模式限制哪些字段。...请注意, GraphQL 响应接收到数据将与请求它查询具有相同结构。...使用 GraphQL,可以从模式删除不推荐使用字段,而不会影响现有查询。这为应用程序提供了对新功能持续访问,并鼓励更清洁、更可维护代码。

    1.6K30

    11.6 VR 扫描:超级电容器制造商Skeleton融资3.2亿元;《精灵宝可梦GO》营收10亿美元

    据了解,今年9月,Skeleton宣布与德国卡尔斯鲁厄理工学院制作出了突破性石墨超级电池,其能够15秒内充满电,比普通电池快1000倍左右。...且石墨超级电池经过几十万次充放电过程后,依然没有明显老化现象。 VRPinea独家点评:目前技术还不成熟,但电池发展已经很多年没有重大突破了。...这款组件像素尺寸为7µm,VGA(640X480)分辨率,能够测量20厘米至5米范围内对象。...一场551人组成实验,该方案识别准确率最高可达95%,每人不到5分钟即可完成识别。即使算法训练时间从5分钟降低至1分钟,准确率也能高达75%。...04 《精灵宝可梦GO》营收10亿美元创新高 近日,据Sensor Tower Intelligence最新统计数据,《精灵宝可梦GO》2020 年前十月总营收超过往年记录,今年游戏营收将创新高。

    35420

    GraphQL 入门指南

    现在编写第一个 Type, schema.graphql 文件中用以下内容替换存在 Query 类型: type User { id: ID! name: String!...但是,每一行结尾 !呢? 感叹号表示字段不可为空,这意味着每个字段必须在每个查询返回一些数据。 User 唯一可以为空字段是 age。...GraphQL,有三个主要概念: query (查询) — 从服务器获取数据方式。 mutation (更改) — 修改服务器上数据并获取更新数据方法(创建、更新、删除)。...首先,文件 schema.graphql 编写一个名为Query 新类型: type Query { users: [User!]! } 这很简单:用户查询将返回给我们一个或多个用户数组。... users 函数,我们只是返回存在 users 数组,这个数组存放是所有的用户。

    2K30

    使用 GraphQL 和 Ballerina 操作多个数据源

    但在使用 GraphQL 时,你可以使用查询语法定义所需信息结构,然后通过单个 API 请求就可以获取所需信息。...创建所需记录之前,需要分析一下根据指定 ISBN 从 Google Books API 获取 JSON 响应消息格式。它返回一个 JSON 对象,其中包含了一个“items”数组。...使用记录类型作为对象有局限性,因此,在这个示例,我们使用服务类型来表示“Book”对象。 在这个服务,“BookDetails”是一个 final 只读字段,初始化后不能被赋值。...allBooks 和 bookByName 是通过 GraphQL 查询获取书籍数据资源函数,因此,它们返回“Book”数组。要将新书添加到数据库,可以调用“addBook”远程方法。...它将书籍信息作为输入参数,并返回一个 int 值,这个值表示插入书籍索引,如果发生错误就返回 -1。

    2.4K20

    GraphQL+Koa2实现服务端API结合Apollo+Vue

    然而 REST api 表 现得过于僵化,无法跟上访问它们客户快速变化需求 RESTful API 不足 扩展性(多个终端需要返回不同字段),单个 RESTful 接口返回数据越来越 臃肿。...前端对于真正用到字段是没有直观映像,仅仅通过 url 地址,无法预测也无 法回忆返回字段数目和字段是否有效,接口返回 50 个字段,但却只用 5 个字段,造 成字段冗余,扩展性差,单个 RESTful...尤其是在业务多变场景,很难保证工程质量同时快速满足业务需求 GraphQL 优点 吸收了 RESTful API 特性 所见即所得 各种不同前端框架和平台可以指定自己需要字段。...Union:联合类型用于描述某个字段能够支持所有返回类型以及具体请求真正返回类型 Enum:枚举用于表示可枚举数据结构类型 InputObject:输入对象 List:列表 列表是其他类型封装...将它与vue-apollo和graphql一起安装: npm install vue-apollo graphql apollo-boost --save src/main.js引入apollo-boost

    5.2K42

    安息吧 REST API,GraphQL 长存

    REST API ,没有客户端请求语言。客户端无法控制服务器返回数据。没有任何语言可以这样做。更确切地说,可用于客户端语言非常有限。...本质上,我们可以添加新字段,而不需要删除字段,因为我们有一个图,并且我们可以通过添加更多节点来灵活地扩展图。因此,我们可以图上留下旧 API,并引入新 API,而不会将其标记为新版本。...一个设计良好 RESTful API 还会返回给我们该人物星球 ID 和参演所有电影 ID 数组。...假设我们有单个 GraphQL 端点通过 HTTP 暴露在 /graphql。 由于我们希望单次往返请求我们所需数据,所以我们需要一种表达我们对服务器端完整数据需求方式。...GraphQL 查询字段被设计为独立功能,并且使用数据库数据解析这些字段可能会导致对解析字段产生新数据库请求。

    2.7K30

    编写graphql服务

    开发graphql服务前你可能需要知道graphql提供了哪些能力,以及graphql定义了哪些规范,这些都可以在这里学习。...graphql服务核心概念 类型(type):type是最基础因为graphql服务返回数据一定是定义好类型单个或者数组。...类型就像面对对象编程里class,返回数据是class实例 字段(filed):filed组成type,一个type由多个filed构成。filed就像面对对象编程里class一个属性。...每个字段都有返回类型,返回类型是定义type 查询(query):通过query来暴露graphql服务所提供所有读接口,query就是type它由filed组成 变化(mutation):通过mutation...storyType topstories获取500个热门story,该字段返回类型是[storyType] 可以看到获取数据逻辑都在Resolve函数里,由于篇幅有限model 里封装的如何去数据库获取数据代码忽略了

    1K80

    编写graphql服务

    开发graphql服务前你可能需要知道graphql提供了哪些能力,以及graphql定义了哪些规范,这些都可以在这里学习。...graphql服务核心概念 类型(type):type是最基础因为graphql服务返回数据一定是定义好类型单个或者数组。...类型就像面对对象编程里class,返回数据是class实例 字段(filed):filed组成type,一个type由多个filed构成。filed就像面对对象编程里class一个属性。...每个字段都有返回类型,返回类型是定义type 查询(query):通过query来暴露graphql服务所提供所有读接口,query就是type它由filed组成 变化(mutation):通过mutation...storyType topstories获取500个热门story,该字段返回类型是[storyType] 可以看到获取数据逻辑都在Resolve函数里,由于篇幅有限model 里封装的如何去数据库获取数据代码忽略了

    43510

    编写graphql服务

    开发graphql服务前你可能需要知道graphql提供了哪些能力,以及graphql定义了哪些规范,这些都可以在这里学习。...graphql服务核心概念 类型(type):type是最基础因为graphql服务返回数据一定是定义好类型单个或者数组。...类型就像面对对象编程里class,返回数据是class实例 字段(filed):filed组成type,一个type由多个filed构成。filed就像面对对象编程里class一个属性。...每个字段都有返回类型,返回类型是定义type 查询(query):通过query来暴露graphql服务所提供所有读接口,query就是type它由filed组成 变化(mutation):通过mutation...storyType topstories获取500个热门story,该字段返回类型是[storyType] 可以看到获取数据逻辑都在Resolve函数里,由于篇幅有限model 里封装的如何去数据库获取数据代码忽略了

    67810

    2020前端技术面试必备Vue:(一)基础快速学习篇

    Vue 样式绑定 class 使用 1.通过数组方式添加样式 通过数组方式添加样式 【‘样式名’】 --> 这里样式名是提前CSS定义好, 使用 :class绑定使用 <h1 :class...简单说:就是改变了原始数组原始数组上做一些操作,例如:增加,删除.. // 变异方法包括: push() pop() shift() unshift() splice() sort() reverse...() 非变异方法 //所谓非变异方法:不改变原始数组,生成新数组 // 非变异方法包括: filter() concat() slice() .......在这种情况下,可以创建一个计算属性,来返回过滤或排序后数组。... 按键修饰符 由于Vue 废除了 keyCode 事件, 开发,想要获取用户输入按键,可以自己通过全局 config.keyCodes 对象自定义按键修饰符别名: 具体设置为 https

    1.9K20

    GraphQL与OpenAPI:数据治理优缺点

    但在 API 标准领域,GraphQL 和 OpenAPI 作为企业两个重要框架脱颖而出。 API 在数据消费中发挥着至关重要作用,并且通过代理,确保健全数据治理方面至关重要。...GraphQL GraphQL 端点包括以平台无关术语定义数据实体、属性和关系。它可以作为单个工件进行管理,也可以通过网关进行联合。...它可以描述如何删除、更新或创建其他数据(称为变异),这是支持操作工作负载所必需。此外,您可以定义片段,它们类似于子例程,用于可重用性和可组合性。...服务器处理遍历关系并将请求作为单个结果返回。定义关系可重用性是GraphQL 提供可组合性一种方式——GraphQL 超能力。...受治理环境过度获取数据会增加监控和安全性复杂性和成本,尤其是受监管环境。 未来重点 为了评估 API 标准可行性,请提出以下问题:该标准未来与以数据为中心用例保持一致可能性有多大?

    10810
    领券