python django form 正则表达式验证

这里讲的是django怎样进行正则表达式验证。
django的form里面可以对输入进行一些基本的验证,但是如果要进行正则表达式验证的话就要对form进行clean扩展了。
下面是一个例子:

import re//这个是引用对应的正则验证包

class UserForm(BaseModelForm):
    phone = forms.CharField(label='手机号码',help_text='(必填)例:13888888888/0771-3236558', required=True,max_length=30,min_length=11)
    email = forms.EmailField(label='邮箱', help_text='(必填)',required=True,error_messages={'required':"请输入邮箱地址"})
    class Meta:
        model = User
        fields = ['phone', 'email']
    def clean_phone(self)://clearn_字段名称
          phone = self.cleaned_data['phone']//获取对应的字段
          pattern=re.compile(r"^((\d{3,4}-)?\d{7,8})$|(1[3-9][0-9]{9})")//设置正则验证
          if pattern.match(phone)://如果验证失败的话就会返回none
             pass
          else:
              msg=u"请输入正确的机机或座机号码!"
              self._errors["phone"] = self.error_class([msg])//设置输入框的告警文字
          self.phone=phone 
          return phone


上面的例子可以看出:email可以通过EmailField来进行验证,但是手机却不可以,所以我们对手机进行了正则验证


你可能感兴趣的:(python django form 正则表达式验证)