博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Form组件钩子自定义验证
阅读量:5453 次
发布时间:2019-06-15

本文共 1821 字,大约阅读时间需要 6 分钟。

django预留的钩子方法:

def _clean_fields(self):     for name, field in self.fields.items():         # value_from_datadict() gets the data from the data dictionaries.         # Each widget type knows how to retrieve its own data, because some         # widgets split data over several HTML fields.         if field.disabled:             value = self.get_initial_for_field(field, name)         else:             value = field.widget.value_from_datadict(self.data, self.files, self.add_prefix(name))         try:             if isinstance(field, FileField):                 initial = self.get_initial_for_field(field, name)                 value = field.clean(value, initial)             else:                 value = field.clean(value)             self.cleaned_data[name] = value             if hasattr(self, 'clean_%s' % name):                 value = getattr(self, 'clean_%s' % name)()                 self.cleaned_data[name] = value         except ValidationError as e:             self.add_error(name, e)

自定义钩子方法:

针对一个字段做验证的时候使用clean_%s自定义验证 def clean_username(self):     username = self.cleaned_data.get("username")     username_exist = models.UserInfo.objects.filter(username=username)     if username_exist:         self.add_error("username",ValidationError("用户名已存在")) def clean_phone(self):     phone = self.cleaned_data.get('phone')     phone_exist = models.UserInfo.objects.filter(phone=phone)     if phone_exist:         self.add_error('phone', ValidationError("手机号码已存在"))
针对多个字段做验证的时候使用clean自定义验证
def clean(self):     pwd1 = self.cleaned_data.get('password')     pwd2 = self.cleaned_data.get('re_password')     if pwd1 == pwd2:         pass     else:         self.add_error('re_password', ValidationError('密码输入不一致'))

 

jquery绑定数据:

jquery使用on(input,func)绑定事件input框有输出就可以检测。

转载于:https://www.cnblogs.com/louzi/p/9367172.html

你可能感兴趣的文章
八:Razor(MVC框架视图引擎)
查看>>
java代码编辑器 pdf文件预览 主流SSM 代码生成器 shrio redis websocket即时通讯
查看>>
final
查看>>
Win8下更改Chrome缓存目录
查看>>
django框架小技巧
查看>>
(八)8-3多线程共享变量
查看>>
Parameter配置文件获取
查看>>
[Operating System] {ud923} P3L1: Scheduling
查看>>
(转载)悟透JavaScript
查看>>
java后端发送http请求使用RestTemplate
查看>>
PAT1002
查看>>
避免商品超卖的4种方案
查看>>
AtCoder - 1999 Candy Piles
查看>>
python中calendar模块的常用方法
查看>>
Checklist: 2019 05.01 ~ 06.30
查看>>
【最短路】Vijos P1022Victoria的舞会2
查看>>
(原创)大数据时代:基于微软案例数据库数据挖掘知识点总结(Microsoft 线性回归分析算法)...
查看>>
调整Tomcat的并发线程到5000+
查看>>
KextWizard 的使用方法;以及Kext安装的几种工具下载
查看>>
生成折扣日记账
查看>>