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. area标签的使用,图片中某一个部分可以点击跳转,太阳系中点击某个行星查看具体信息

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. HTML事件(onclick、onmouseover、onmouseout、this)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 《三体》刘慈欣英文演讲:说好的星辰大海你却只给了我Facebook

    美国当地时间2018日11月8日,著名科幻作家刘慈欣被授予2018年度克拉克想象力贡献社会奖(Clarke Award for Imagination in Service to Society),表 ...

  4. 洛谷 P2897 【蚯蚓】 题解

    先分析一下题意: 这个题说的就是一开始给你很多条蚯蚓,然后给出你规定的次数,每一次都从蚯蚓里面拿出最长的来切成一条是原来q倍的,另一条是原来的(1 - q)倍,把切开的两条再放回去.规定次数完成之后, ...

  5. nodejs+nvm历史版本

    官网:http://nodejs.org/dist/ 淘宝镜像:https://npm.taobao.org/mirrors/node/ nvm历史版本:https://github.com/core ...

  6. 如何防范web前端安全攻击

    一.对于XSS防御: 1.不要信任任何外部传入的数据,针对用户输入作相关的格式检查.过滤等操作,以及转义字符处理.最普遍的做法就是转义输入输出的内容,对于括号,尖括号,斜杠进行转义 function ...

  7. 复旦高等代数 I(16级)每周一题

    每周一题的说明 一.本学期高代I的每周一题面向16级的同学,将定期更新(一般每周的周末公布下一周的题目); 二.欢迎16级的同学通过微信或书面方式提供解答图片或纸质文件给我,优秀的解答可以分享给大家: ...

  8. Node.js之删除文件夹(含递归删除)

    应用场景:比如像Eclipse这样的IDE,右击项目,出现选项,点击选项中的删除,就可以删除这个项目及其下的子目录包含文件(使用electron开发的桌面端项目多少都会用到). 核心代码如下: /** ...

  9. [C++] const和mutable关键字使用方法

    const 修饰的变量为常成员变量,表示此变量不能被修改赋值,并且构造函数中只能用初始化列表的方式初始化,其他初始化方式都是错误的 const 修饰的函数为常成员函数,表示此函数中只能读取成员变量,不 ...

  10. js中isNaN和Number.isNaN的区别

    isNaN 当我们向isNaN传递一个参数,它的本意是通过Number()方法尝试将这参数转换成Number类型,如果成功返回false,如果失败返回true. 所以isNaN只是判断传入的参数是否能 ...