自定义了一个表单验证类,但是在django中当我clean_UserName这个方法执行了并抛出异常的时候,其他的验证方法还会继续执行,怎么才能在一个验证方法抛出异常后其他的方法都中止执行呢?
class registerForm(forms.Form): UserName = forms.CharField(required=True,max_length=15,min_length=3,error_messages={ 'required':'用户名不能为空', 'max_length':'用户名长度不能大于15个字母', 'min_length':'用户名长度不能小于3个字母' }) Password = forms.CharField(required=True,max_length=15,min_length=3,error_messages={ 'required':'密码不能为空', 'max_length':'密码不能大于15个字母', 'min_length':'密码长度不能小于3个字母' }) Email = forms.CharField(required=True,error_messages={ 'required':'邮箱不能为空', }) VerifyCode = forms.CharField(required=True,error_messages={ 'required':'验证码不能为空', }) def clean_UserName(self): UserName = self.cleaned_data.get('UserName') user = User.objects.filter(username=UserName).exists() if user: raise ValidationError('用户名已经存在') return UserName def clean_Email(self): Email = self.cleaned_data.get('Email') user = User.objects.filter(email=Email).exists() pattern = r'^[\w\.-]+@[\w\.-]+\.\w+$' if not re.match(pattern, Email): raise ValidationError('邮箱格式错误') elif user: raise ValidationError('邮箱已存在') return Email def clean_VerifyCode(self): VerifyCode = self.cleaned_data.get('VerifyCode') user = models.VerifyCode.objects.filter(VerifyCode=VerifyCode).exists() if not user: raise ValidationError('验证码错误') return VerifyCode
def register(request): if request.method == 'POST': form = registerForm(request.POST) if form.is_valid(): # 如果表单有效,保存数据 pass else: # 如果表单无效,检查哪个字段出错,并停止其他验证 if 'UserName' in form.errors: # 如果用户名验证失败,停止其他验证 return render(request, 'register.html', {'form': form}) elif 'Email' in form.errors: # 如果邮箱验证失败,停止其他验证 return render(request, 'register.html', {'form': form}) elif 'VerifyCode' in form.errors: # 如果验证码验证失败,停止其他验证 return render(request, 'register.html', {'form': form}) else: form = registerForm() return render(request, 'register.html', {'form': form})
我正在用Xtext创建一个DSL,用于生成图像。然而,由于我对Xtext完全不了解,我遇到了一些问题,希望您能给我一些指导。 最终,我希望用户使用以下编码结构: 我在Xtext中想到了以下内容(我没有对MWE2做任何更改): 我需要解决几个问题,但我想知道解决这些问题的最佳方法是什么。 如何为终端规则SIZE中使用的INT设置边界。 如何设置bgColor:或bgsize:只能使用一次? 如何设置
验证规则的定义通常有两种方式,如果你使用了验证器的话,通常通过rule属性定义验证规则,而如果使用的是独立验证的话,则是通过rule方法进行定义。 属性定义 属性定义方式仅限于验证器,通常类似于下面的方式: <?php namespace app\index\validate; use think\Validate; class User extends Validate { prot
我试图在我的Codeigniter项目中创建一组表单验证规则,以便在第一组验证失败时,第二个验证集不应运行。 我在CI手册里找到了这个: 我知道我现在可以分别运行每个集合的验证($this- 问题是,当我使用$config数组时,当表单post失败时,错误不会添加到表单验证类中(因此不会显示)。当我不使用规则集,但只使用$this时,它确实添加并显示了错误- 当使用一组规则输入无效表单数据时,没有
路过的大佬,应该怎么校验?麻烦大家啦:
在antd3的自定义表单项中,为什么无法触发规则校验 只有这样写才可以 像下面这样写就不能触发错误校验 不是特别理解第一种方式,有大佬可以讲解一下嘛
本文向大家介绍PHP Yii框架之表单验证规则大全,包括了PHP Yii框架之表单验证规则大全的使用技巧和注意事项,需要的朋友参考一下 Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。 废话不多说了,直接给大家贴代码了。 完整示例: 以上代码就是关于PHP Yii框架之表单验证规则大全的全部内容,希望大家喜欢。