首页 > 其他分享 >django 常用功能

django 常用功能

时间:2022-11-22 12:04:11浏览次数:33  
标签:常用 serializers get url 功能 django msg validated data


  1. 如何给viewset的request添加参数验证:
    首先,编写相应的serializer
class XPushSerializer(serializers.ModelSerializer):
task_id = serializers.CharField(required=False, allow_blank=True)
status = serializers.IntegerField(required=False)

class Meta:
model = models.X
fields = '__all__'
def validate(self, validated_data):
ok, msg = util.validate_required(['title', 'text', 'production_mode'], validated_data)
if not ok:
raise serializers.ValidationError(msg)

if validated_data.get('after_open') != '' and validated_data.get('after_open') not in ['go_url', 'go_app']:
msg = "'after_open'应该为'go_app' 或 'go_url',收到'%s'" % validated_data.get('after_open')
raise serializers.ValidationError(msg)
if validated_data.get('production_mode') and validated_data.get('production_mode') not in ['false', 'true']:
msg = "'production_mode'应该为'true' 或 'false',收到'%s'" % validated_data.get('production_mode')
raise serializers.ValidationError(msg)
if validated_data.get('jump_url') != '':
if not (validated_data.get('jump_url').startswith('https://') or validated_data.get('jump_url').startswith('http://')):
msg = "'jump_url'为https://或http://开头,收到" + validated_data.get('jump_url')
raise serializers.ValidationError(msg)

其次,在viewset里使用它

serializer = serializers.UmengPushSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
  1. 如何在viewset里分页
queryset = self.paginate_queryset(queryset)
return self.get_paginated_response(data)

3.如何给列表接口增加排序字段

class XViewSet(viewsets.ModelViewSet)
filter_backends = (OrderingFilter, DjangoFilterBackend)
permission_classes = (IsAuthenticated,)
ordering_fields = ('bonus_money', 'bet_money')

对X的list: ?ordering=-bonus_money表示倒序

  1. 对查询条件取或,与
# 与
queryset = X.objects.filter(name='ft',age=9)
# 或
from django.db.models import Q
queryset = X.objects.filter(Q(name='ft') | Q(age=9))
  1. 查询条件大于和小于


标签:常用,serializers,get,url,功能,django,msg,validated,data
From: https://blog.51cto.com/u_11553781/5877570

相关文章

  • linux screen 常用
    安装 yuminstallscreen常用命令Use:screen[-opts][cmd[args]]or:screen-r[host.tty]Options:-4ResolvehostnamesonlytoIPv4address......
  • Golang常用的工具函数,无依赖,常更
    util.go//Executef()ntimesonfailfuncRetryHandler(nint,ffunc()(bool,error))error{ok,er:=f()ifok&&er==nil{returnnil}ifn-1>0......
  • 换行、回车、空格等常用的ASCII码值
    换行符的ASCII码值为10,十六进制表示为0x0A回车符的ASCII码值为13,十六进制表示为0x0D空格符的ASCII码值为32,十六进制表示为0x20以下列出其他一些常用到的符号的ASCII码......
  • 推荐一款高效率前端开发神器,功能太强大了 !
    当前端收到一张设计稿的时候,他们需要考虑非常多的问题。而第一个摆在面前的问题就是- ​​切图​​。作为连接设计师和前端的重要“纽带”,如果切图不准确,很容易导致最终的......
  • ASP.NET CORE MVC 开发常用代码备份
    1.在页面中进行注入配置文件操作注册对象classProgram{staticvoidMain(){Host.CreateDefaultBuilder().ConfigureWebHostDefaults(builder=>......
  • C#中byte[]字节数组复制的常用方法
    简单总结了5种字节数组的复制方法for循环实现复制较为原始的遍历写法,不太推荐byte[]data=newbyte[]{0,1,2,3,4,5,6,7,8,9};byte[]data1=newbyte[data.length]......
  • linux常用命令
    文件解压#压缩tar-czvftinyproxy.tar.gztinyproxy/#解压tar-zxvftinyproxy.tar.gz/usr/local/tinyproxy/软链接#ln-s文件或目录软链接的名称ln-s/va......
  • Springboot整合Swagger常用注解(三)
    swagger注解主要是用来给swagger生成的接口文档说明用的1、@Api使用范围:用在类上注解,控制整个类生成接口信息的内容,表示对类的说明,也代表了这个类是swagger2的资源参......
  • python中的字符串的常用方法介绍
    a="alxeLi金角大王"   #创建一个字符串来演示方法的功能结果。一下都使用这个字符串演示。首先要了解的常识性的知识点是:字符串是不可变的序列。所有对字符串的......
  • SpringCloud Gateway 网关常用技术实现
    SpringCloudGateway是目前非常流行的网关中间件,类似于nginx一样,主要提供【路由转发】和【负载均衡】功能,目的是为微服务架构提供一种简单而有效的统一的API路由管理......