自定義驗證規則
方法一:
from django.forms import formfrom django.forms import widgets
from django.forms import fields
from django.core.validators import regexvalidator
class myform(form):
user = fields.charfield(
validators=[regexvalidator(r'^[0-9]+$', '請輸入數字'), regexvalidator(r'^159[0-9]+$', '數字必須以159開頭')],
)
方法二
importrefrom django.forms import
form
from django.forms import
widgets
from django.forms import
fields
from django.core.exceptions import
validationerror
#自定義驗證規則
defmobile_validate(value):
mobile_re = re.compile(r'
^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]$')
ifnot
mobile_re.match(value):
raise validationerror('
手機號碼格式錯誤')
class
publishform(form):
title = fields.charfield(max_length=20,
min_length=5,
error_messages=,
widget=widgets.textinput(attrs=))
#使用自定義驗證規則
phone = fields.charfield(validators=[mobile_validate, ],
error_messages=,
widget=widgets.textinput(attrs=))
email = fields.emailfield(required=false,
error_messages=,
widget=widgets.textinput(attrs=))
方法三:
from django.forms importform
from django.forms import
fields
from django.forms import
widgets
models
from django.core.validators import
regexvalidator
classuserinfoform(form):
name=fields.charfield(
required=true,
min_length=6,
max_length=12,
)#使用者提交是字串
email=fields.emailfield()#
使用者提交是字串 正則
phone=fields.charfield(
#1.通過物件(支援正規表示式)
#validators=[regexvalidator(r'^[0-9]+$', '請輸入數字'), regexvalidator(r'^159[0-9]+$', '數字必須以159開頭')]
#2.通過函式
#validators=([mobile_validate,])
#在當前類中 方法名稱有要求
#validators=([clean_phone])
)#自定義驗證規則 正則
def clean_phone(self):# 去取使用者提交的值:可能是錯誤的,可能是正確
value = self.cleaned_data['phone']
mobile_re = re.compile(r'^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]$')
if not mobile_re.match(value):
raise validationerror('手機號碼格式錯誤')
if models.userinfo.objects.filter(phone=value).count():
raise validationerror('手機號碼已經存在')
django中使用Form元件
內容 1.form元件介紹 2.form元件常用字段 3.form元件校驗功能 4.form元件內建正則校驗 參考 1.form元件介紹 1 之前的web開發模式 以註冊為例 關於校驗 2 關於form元件 之前在html頁面中利用form表單向後端提交資料時,都會寫一些獲取使用者輸入的標籤並且用f...
Django的form元件 正則校驗
from django.core.validators import regexvalidator 匯入正則校驗器regexvalidator class userinfo forms.form username forms.charfield label 使用者名稱 min length 6,re...
django框架中的form元件的用法
先導入 from django.forms import form from django.forms import fields from django.forms import widgets from django.core.validators import regexvalidator f...