Django REST framework 是一套基于Django框架编写RESTful风格API的组件。

其中mixins配合viewsets能极其方便简化对数据的增删改查,

但本身并没有对数据的批量更新删除,利用rest_framework_extensions扩展包可以轻松帮我们实现这些功能。

安装使用

pip install rest_framework_extensions

views.py

在视图类中继承ListUpdateModelMixin

 from rest_framework_extensions.mixins import ListUpdateModelMixin
class ShoppingCartViewSet(ListUpdateModelMixin, viewsets.ModelViewSet):
pass

settings.py

 CORS_ALLOW_HEADERS = ['*']  # 允许的请求头
CORS_ORIGIN_ALLOW_ALL = True # 允许跨域 REST_FRAMEWORK_EXTENSIONS = {
'DEFAULT_BULK_OPERATION_HEADER_NAME': None
}

使用浏览器本地测试,在请求头加上:X-BULK-OPERATION: true

使用patch方式请求测试成功,状态码204,不会返回任何东西

使用PUT方法批量更新

以上在浏览器使用正常,但发现在微信小程序中并不支持patch方法,只能用put方法。要么重新再写一个put接口,要么更改源码。

ctrl点击查看ListUpdateModelMixin码源,果真只有put方法。怎么办?

把patch方法复制粘贴一份,改名为put即可,同样测试成功。

\Lib\site-packages\rest_framework_extensions\bulk_operations\mixins.py

对于以上修改。对于没有使用虚拟环境的同学,个人建议不要直接修改源码,一定要把整个包拷到项目目录下再修改。

在项目目录下新建extra_apps文件夹,用来存放要修改的第三方包。

再在settings.py中添加以下。优先从extra_apps文件夹导包。

import os
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(, os.path.join(BASE_DIR, 'extra_apps'))

微信小程序测试正常

Django REST Framework批量更新rest_framework_extensions的更多相关文章

  1. django rest framework批量上传图片及导入字段

    一.项目需求 批量上传图片,然后批量导入(使用excel)每个图片对应的属性(属性共十个,即对应十个字段,其中外键三个). 二.问题 一次可能上传成百上千张图片和对应字段,原来数据库的设计我将图片和对 ...

  2. django restful framework 一对多方向更新数据库

    目录 django restful framework 序列化 一 . 数据模型: models 二. 序列化: serializers 三, 视图: views 四, 路由: urls 五. 测试 ...

  3. 【转】Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)

    E文好的可以直接看https://github.com/loresoft/EntityFramework.Extended 也可以在nuget上直接安装这个包,它的说明有点过时了,最新版本已经改用对I ...

  4. (转)Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)

    转自:http://www.cnblogs.com/jinzhao/archive/2013/05/31/3108755.html 今天乍一看,园子里居然没有关于这个类库的文章,实在是意外毕竟已经有很 ...

  5. Django REST framework+Vue 打造生鲜超市(十二)

    十三.首页.商品数量.缓存和限速功能开发  13.1.轮播图接口实现 首先把pycharm环境改成本地的,vue中local_host也改成本地 (1)goods/serializer class B ...

  6. Django序列化&django REST framework

    第一章.Django序列化操作 1.django的view实现商品列表页(基于View类) # 通过json来序列化,但手写字典key代码量较大,容易出错:还有遇到时间,图片序列化会报错 from g ...

  7. 深度解析Django REST Framework 批量操作

    我们都知道Django rest framework这个库,默认只支持批量查看,不支持批量更新(局部或整体)和批量删除. 下面我们来讨论这个问题,看看如何实现批量更新和删除操作. DRF基本情况 我们 ...

  8. django rest framework 入门

    django rest framework 入门1-序列化 Serialization 分类: Python 2013-01-22 22:24 11528人阅读 评论(0) 收藏 举报 djangop ...

  9. django rest framework

    Django-Rest-Framework 教程: 4. 验证和权限 作者: Desmond Chen, 发布日期: 2014-06-01, 修改日期: 2014-06-02 到目前为止, 我们的AP ...

随机推荐

  1. telegraf 学习三 telegra inputs.net_response + smtp2http+ grafana 进行tcp服务状态监控

    以下演示一个简单的使用telegra inputs.net_response 进行tcp 服务状态的监控,统计集成grafana 的alert 为了方便使用了一个smtp2http 的服务,对于htt ...

  2. 特征缩放(Feature Scaling)

    特征缩放的几种方法: (1)最大最小值归一化(min-max normalization):将数值范围缩放到 [0, 1] 区间里 (2)均值归一化(mean normalization):将数值范围 ...

  3. Processing设计Android APP(1) - 安装

    1.安装环境: A. Android Studio B. Processing 3.4 (64bit) 首先,直接安装Android Studio,我这里版本是3.2.1. 然后,新建一个Sample ...

  4. firewalld添加/删除服务service,端口port

    启动CentOS/RHEL 7后,防火墙规则设置由firewalld服务进程默认管理. 一个叫做firewall-cmd的命令行客户端支持和这个守护进程通信以永久修改防火墙规则. # firewall ...

  5. OpenFOAM计算结果转换到CFD-Post当中处理

    我们编写如下的Python代码 源代码:

  6. 【大数据应用技术】作业十一|分布式并行计算MapReduce

    本次作业在要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3319  1.用自己的话阐明Hadoop平台上HDFS和MapRe ...

  7. 剑指offer:和为S的两个数字

    题目描述: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. 思 ...

  8. vue+elementui搭建后台管理界面(6登录和菜单权限控制[二])

    根据权限计算路由的代码 /** * 通过meta.role判断是否与当前用户权限匹配 * @param roles * @param route */ function hasRoles (roles ...

  9. pypy安装与使用

    首先安装pypy环境: yum install pypy -y yum install pypy-devel -y 然后安装pypy的pip:wget https://bootstrap.pypa.i ...

  10. node.js通过iconv-lite完成gbk字符解码例子

    通过 iconv-lite可以实现中文字符解码 1.安装iconv-lite npm install iconv-lite 2.iconv-lite网址如下 iconv-lite https://gi ...