2021-07-31-DJ-007 Django 模型,自定义模型管理器Manager,自定义字段验证器Validdator
一、模型 管理器
模型实例通过模型管理器获得并传递给使用者,修改默认的模型管理器,可以提前进行一些筛选步骤,比如筛掉已经注销的用户、已经取消的订单等等。
默认的模型管理器是django.db.models.Manager
自定义模型继承自models.Manager
自定义一个筛除订单状态为取消的管理器
class OrderModelManager(models.Manager):def get_queryset(self):return super().get_queryset().filter(~Q(status=5))
在OrderModel中加入
objects=OrderModelManager()
再去站点管理中筛选已取消的订单就没有显示的了
二、字段验证器
定义一个验证器的类
from django.core.exceptions import ValidationErrorclass UserValidator:@classmethoddef valid_number(cls,value):if not re.match(r'1[1-57-9][0-9]{9}',value):raise ValidationError("手机号格式不正确")
字段在参数里 用validators=列表
number = models.CharField(max_length=11,blank=True,null=True,verbose_name='手机号',validators=[UserValidator.valid_number])
效果:
2021-07-31-DJ-007 Django 模型,自定义模型管理器Manager,自定义字段验证器Validdator相关推荐
- Django REST framework API 指南(12):验证器
官方原文链接 本系列文章 github 地址 转载请注明出处 验证器 大多数情况下,您在 REST framework 中处理验证时,只需依赖默认的字段验证,或者在序列化类或字段类上编写明确的验证方法 ...
- Thinkphp5 模型 验证器执行顺序问题
Thinkphp5把模型的验证规则归为一个验证器,这种做法,不知到符不符合大家的心意,反正楼主是比较不爽的 楼主更倾向于tp3.2的验证规则直接写在模型里面,毕竟你的验证规则一般而言是针对模型来验证的 ...
- django 1.8 官方文档翻译:13-12 验证器
验证器 编写验证器 验证器是一个可调用的对象,它接受一个值,并在不符合一些规则时抛出ValidationError异常.验证器有助于在不同类型的字段之间重复使用验证逻辑. 例如,这个验证器只允许偶数: ...
- SAP开发框架系列之 自定义批次管理
点击蓝字 关注我们 一 前言 归纳总结是个好习惯,我们都值得拥有. 每一个业务的开发需求,都是一次归纳的契机. 根据业务特定的需求分析,是否可以概括出一个通用需求? 特定业务需求是否完全包含在这个通用 ...
- 9、 Struts2验证(声明式验证、自定义验证器)
1. 什么是Struts2 验证器 一个健壮的 web 应用程序必须确保用户输入是合法.有效的. Struts2 的输入验证 基于 XWork Validation Framework 的声明式验证: ...
- SpringBoot自定义参数验证器
前要 之前我们介绍了JSR-303验证方式,十分的方便Spring都帮我们封装好了,但是对一些复杂的验证,还是需要更加灵活的验证器的. JSR-303验证器传送门:https://www.jiansh ...
- ASP.NET2.0服务器控件之自定义状态管理
自定义视图状态管理 在介绍视图状态时,我们曾经提到过:对于简单属性,例如,String.Int等类型,.NET执 行引擎将自动启用默认视图状态管理机制,以便完成相应的功能.然而,如果开发人员在View ...
- struts2自定义验证器(身份证验证)
struts2的验证器是用的xwork里面的验证,自定义验证器就是根据源码继承已有的字段验证器而来.具体步骤如下: 1.展开xwork-2.0.4.jar,com.opensymphony.xwork ...
- 基于struts2框架-自定义身份证号验证器
自定义拦截器的步骤: 1.定义一个验证器的类: > 自定义的验证器都需要实现 Validator接口. > 可以选择继承 ValidatorSupport 或 FieldValidato ...
最新文章
- ipsec在企业网中的应用(IKE野蛮模式)
- c++ cstring 转换 char_【揭秘】C语言类型转换时发生了什么?
- 月薪11万招数据工程师,看到要求我傻眼了!
- node.js微博案例第二讲
- 【OpenCV 例程200篇】21. 图像的叠加
- flask manage port_后端Python3+Flask结合Socket.io配合前端Vue2.0实现简单全双工在线客服系统...
- 【算法】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
- 2010年3月再谈前端工程师的笔试题
- 有量子计算机的山西高能小说,五本大神级高能热血小说,没看过也必定听说过 ,加入书架告别书荒!...
- 如何隐藏Windows7 系统保留分区
- 2020年不能启动win7_包装车间2020年大修正式启动
- 世界各国国家代码简称 - 备用
- 51单片机外设篇:红外通信
- STM32学习记录——SIM900A实现中英文短信发送
- 2020 ECCV 所有论文及补充材料链接(二)
- wamp的Laravel项目的Apache虚拟主机域名绑定和端口修改(实用)
- eslint: globals
- 一点资讯app signature
- R语言参数检验多重比较
- littlevgl教程 Linux,[笔记]在嵌入式linux上运行LittlevGL GUI demo 支持tslib