Django - 自定义Form校验规则

Django - 自定义Form校验规则,第1张

概述自定义Form校验规则 class MyForm(forms.Form): # form可以校验的规则 username = fields.CharField(max_length=32,min_length=3) password = fields.CharField(max_length=32,min_length=3) re_password = fiel 自定义Form校验规则
class MyForm(forms.Form):    # form可以校验的规则    username = fIElds.CharFIEld(max_length=32,min_length=3)      password = fIElds.CharFIEld(max_length=32,min_length=3)    re_password = fIElds.CharFIEld(max_length=32,min_length=3)
局部钩子 - 校验用户名不能重复
def clean_username(self):    # 获取username    username = self.cleaned_data['username']    # 判断用户名是否存在    if models.User.objects.filter(username=username).count():        # 存在即不符合规则,必须抛出ValIDationError异常        raise ValIDationError('该用户名已存在')    # 校验通过,则返回清洗后的数据    return self.cleaned_data['username']
全局钩子 - 检验两次密码输入一致
def clean(self):    # 获取两次输入的密码    password = self.cleaned_data['password']    re_password = self.cleaned_data['re_password']        # 判断是否相等,相等则返回数据,否则抛出ValIDationError异常    if password == re_password:        return self.cleaned_data    else:        raise ValIDationError('两次密码输入不一致')  # 错误信息放在“__all__”里

注意:全局钩子与局部钩子的函数名、判断异常和返回值都是根据内部源码写的
1. 函数名为“clean_字段名”或者“clean”
2. 数据校验有误,只能抛ValIDationError异常,因为在源码中捕获ValIDationError异常
3. 数据校验成功,返回数据

总结

以上是内存溢出为你收集整理的Django - 自定义Form校验规则全部内容,希望文章能够帮你解决Django - 自定义Form校验规则所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1191206.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存