Django框架form表單的那些事兒
阿新 • • 發佈:2018-11-10
Form那些事兒
建立Form類時,主要涉及到 【欄位】 和 【外掛】,欄位用於對使用者請求資料的驗證,外掛用於自動生成HTML;
1:initial
初始值,input框裡面的初始值。
class LoginForm(forms.Form): username = forms.CharField( min_length=8, label="使用者名稱", initial="張三" # 設定預設值 ) pwd = forms.CharField(min_length=6, label="密碼")
2:error_messages
返回的錯誤資訊
class LoginForm(forms.Form): username = forms.CharField( min_length=8, label="使用者名稱", initial="張三", error_messages={ "required": "不能為空", //返回的錯誤資訊 "invalid": "格式錯誤", "min_length": "使用者名稱最短8位" } ) pwd = forms.CharField(min_length=6, label="密碼")
3:password
class LoginForm(forms.Form): ... pwd = forms.CharField( min_length=6, label="密碼", //密碼框是不可見的 要使用 PasswordInput
widget=forms.widgets.PasswordInput(attrs={'class': 'c1'}, render_value=True) )
4:radioSelect
class LoginForm(forms.Form): username = forms.CharField( min_length=8, label="使用者名稱", initial="張三", error_messages={ "required": "不能為空", "invalid": "格式錯誤", "min_length": "使用者名稱最短8位" } ) pwd = forms.CharField(min_length=6, label="密碼") gender = forms.fields.ChoiceField( choices=((1, "男"), (2, "女"), (3, "保密")), label="性別", initial=3, // radio 單選框使用RadioSelect方法產生 widget=forms.widgets.RadioSelect() )
5:單選Select
class LoginForm(forms.Form): ... hobby = forms.fields.ChoiceField( choices=((1, "籃球"), (2, "足球"), (3, "雙色球"), ), label="愛好", initial=3, // select 單選框使用 Select方法 widget=forms.widgets.Select() )
6:多選Select
class LoginForm(forms.Form): ... hobby = forms.fields.MultipleChoiceField( choices=((1, "籃球"), (2, "足球"), (3, "雙色球"), ), label="愛好", initial=[1, 3], // 多選的select 使用的是 SelectMultiple
widget=forms.widgets.SelectMultiple() )
7:單選checkbox
class LoginForm(forms.Form): ... keep = forms.fields.ChoiceField( label="是否記住密碼", initial="checked", // 只有一個 CheckBox widget=forms.widgets.CheckboxInput() )
8:多選checkbox
class LoginForm(forms.Form): ... hobby = forms.fields.MultipleChoiceField( choices=((1, "籃球"), (2, "足球"), (3, "雙色球"),), label="愛好", initial=[1, 3], // 多個checkbox 要使用checkboxSelectMultiple widget=forms.widgets.CheckboxSelectMultiple() )
校驗
關於手機號碼的校驗
from django.forms import Form from 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'^1[3-9][0-9]{9}+$', '數字必須以13到19開頭')], )