Django-rest-framework(八)使用技巧(持续补充中)
- 当viewset中,多个action对应了不同的serializers的时候
class UserView(viewsets.GenericViewSet):
queryset = User.objects.all()
serializer_class = UserSeriallers
def get_serializer_class(self):
if self.action in ['collection', ]:
return Serializers1
elif self.action in ['orderhouse', ]:
return Seriallers2
elif self.action in ['disperson', ]:
return Serializers3
return self.serializer_class
- 当viewset中,多个action对应不同的permission
class AdviserView(viewsets.GenericViewSet):
queryset = Adviser.objects.all().order_by("-id")
serializer_class = AdviserSerializers
permission_classes = (AdviserPermission, )
def get_permissions(self):
if self.action in ["small_app_login", "decode_data",
"bind_phone"]:
self.permission_classes = ()
return super().get_permissions()
- 如果不习惯class view的方式可以使用@api_view装饰器,对应的权限等class可以通过对应的装饰器添加
- serializer中,使用SerializerMethodField,如果需要使用request的数据,可以通过
self.context['request']
取出来,同样的,如果serializer中需要将request传到context, 使用serializers的时候 需要serializer = Serializer(qs, many=True, context={ 'request': request})
的方式传入context - 当列表的serializer和详情的serializer的字段不同时,可以使用继承的方式,减少代码量
Django-rest-framework(八)使用技巧(持续补充中)的更多相关文章
- phpstorm 工具使用技巧(持续补充中。。。)
phpstorm 工具使用技巧(持续补充中...) 一.phpstorm大小写切换 1.选择要转换的目标字符串: //普通商家,普通折扣默认值'COMMON_DISCOUNT'=>10.00, ...
- fastadmin 后台管理框架使用技巧(持续更新中)
fastadmin 后台管理框架使用技巧(持续更新中) FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架,具体介绍,请查看文档,文档地址为:https://doc. ...
- Django(十八)Model操作补充
参考博客:http://www.cnblogs.com/wupeiqi/articles/6216618.html 1. 创建类 class UserInfo(model.Model): age = ...
- 来自平时工作中的css知识的积累---持续补充中
① 现代浏览器中,<img>元素默认情况下底部会有空白,那么这个空白到底是从哪里来的? 解惑: method-one:猛戳 来自知乎的解答 method-two: 延伸阅读 what is ...
- 08 Django REST Framework 解决前后端分离项目中的跨域问题
01-安装模块 pip install django-cors-headers 02-添加到INSTALL_APPS中 INSTALLED_APPS = ( ... 'corsheaders', .. ...
- Js 过滤emoji表情...持续补充中..
原文来自: https://www.cnblogs.com/tsjTSJ/p/7065544.html 最全最详细的用JS过滤Emoji表情的输入 在前端页面开发过程中,总会碰到不允许输入框输入e ...
- 来自平时工作中的javascript知识的积累---持续补充中
① SeaJs和RequireJS最大的区别 解惑:来自豆友 ② javascript中如何判断undefined var exp = undefined; if (exp === undefined ...
- linux常用小技巧(持续更新中)
一.设置固定ip地址1.config查看用的是哪一个网卡这是假设用的是eth12.修改dns地址vim /etc/resolv.confsearch 域名地址nameserver 192.168.3. ...
- Android_实验小心得_持续补充中......
1.LineLayout布局控件宽度百分比显示 其中,宽度百分比 = 控件权重 / 所在parent中所有控件权重和 <LinearLayout android:layout_width=&qu ...
随机推荐
- 上下文(Context)和作用域(Scope)
函数的每次调用都有与之紧密相关的作用域和上下文.从根本上来说,作用域是基于函数的,而上下文是基于对象的. 换句话说,作用域涉及到所被调用函数中的变量访问,并且不同的调用场景是不一样的.上下文始终是th ...
- .net 金额中文大写 日期转中文
金额中文大写 #region 中文大写 /// <summary> /// 返回中文数字 ,如壹佰元整 /// </summary> /// <param name=&q ...
- 微信token验证源码分享(c#版)
在开发时遇到一个问题: 上线后提交申请微信提示"您的服务器没有正确响应token验证...",我查看日志发现根本就没有接收到来自微信的参数. 后来我又记录了微信请求方式和请求的字符 ...
- js把数据处理成钱的格式
1.var Rmoney = parseFloat(money).toFixed(2);//把money处理成保存2位小数的格式
- CentOS7卸载OpenJDK,并安装Oracle官方JDK
一.准备工具 yum源挂载已就绪:CentOS7本地yum源挂载. jdk-8u201-linux-x64.tar.gz,JDK安装包: 注意:在Linux配置JDK版本要求_jdk1.8+; 二.卸 ...
- 弹出框layer插件
有时候我们在网页制作中需要引用各种弹出框,弹出框的展现形式多种多样.可以是弹出图片,视频,文字,也可以是弹出图片轮播等形式: 弹出框插件——layer使用方法(其实官方文档中已经介绍的很详细): 下载 ...
- Android XMPP 例子(Openfire+asmack+spark) 出现登陆连接错误
Android XMPP 例子(Openfire+asmack+spark) 运行出来没问题,但是登陆的时候出现如下错误: 出现错误: 09-17 15:24:16.388: E/AndroidRun ...
- 怎样在vs2013和vs2015中实现自动编译sass
Visual Studio不论是2013版本还是2015版本要自动编译都需要添加扩展. 添加扩展的方法,路径“工具”->“扩展和更新”,在打开的窗口“搜索”你需要的扩展根据提示“下载”和“安装” ...
- js 时间特效
http://example.com:1234/test.htm#part2:Hash的作用. http://www.cnblogs.com/Interkey/p/RunAsAdmin.html
- 【分享】Adobe Flash Player各版本安装包官方直接下载地址
用常规方法下载比较繁琐,先会下个下载器,再下载安装包安装, 这里直接列出了安装包的下载地址,点击进入各版本的下载总页面, 拉到最下方就有各版本的下载地址,这里我直接列出来了: Chrome用的PPAP ...