概述
widgets是乙個配置forms元件的引數配置(標籤型別,屬性等)
widget可以為form渲染模板提供相應支援,可以在widget中指定標籤的型別(預設textinput)和屬性(值) attrs
attrs後面接的屬性以及屬性值為鍵值對形式
如:pwd = forms.charfield(max_length=32,label="密碼",widget=forms.passwordinput(attrs=))
widget部件
處理 input 的部件
textinput
numberinput
emailinput
urlinput
passwordinput
hiddeninput
dateinput
datetimeinput
timeinput
textarea
selector 和 checkbox 部件
checkboxinput
select
nullbooleanselect
radioselect
checkboxselectmultiple
file upload 部件
fileinput
clearablefileinput
合成部件
multiplehiddeninput
splitdatetimewidget
splithiddendatetimewidget
selectdatewidget
所有內建的部件類都是繼承自widget和multiwidge ,可以繼承它們實現自己的部件功能
以 passwordinput為例
前面我們定義的form表單,輸入時密碼是明文顯示的,即輸入的密碼在頁面直觀顯示,這種比較隱秘的資訊,一般都是要做處理的。widget提供了passwordinput標籤用來表示密碼的輸入。
修改我們定義的登錄檔單
from django import forms
class registerform(forms.form):
username = forms.charfield(max_length=32, label="使用者名稱")
# widget=forms.passwordinput()指定password這個字元輸入標籤為密碼格式(頁面輸入時不會明文顯示)
password = forms.charfield(max_length=32, label="密碼",widget=forms.passwordinput())
nickname = forms.charfield(max_length=32, label="姓名")
phone = forms.charfield(max_length=11, label="**")
email = forms.emailfield(label="郵箱")
def clean_username(self): # 定義username的校驗方法
username = self.cleaned_data["username"] # 獲取到輸入的username
if len(username) < 6:
raise forms.validationerror("使用者名稱長度不能小於6位") # 自定義異常
if username.isdigit() == true:
raise forms.validationerror("使用者名稱不能全為數字")
return username
啟動狀態訪問在頁面輸入密碼,不會明文顯示了
Django學習筆記之form表單
表單是通過類實現的,繼承自forms.form,然後在裡面定義要驗證的字段.在表單中,建立欄位跟模型是一模一樣的,但是沒有null true或者blank true等這幾種引數了,有的引數是required true false.使用is valid 方法可以驗證使用者提交的資料是否合法,而且htm...
django學習 Form表單
在驗證某個欄位的時候,可以傳遞乙個validators引數用來指定驗證器,對資料進行進一步的過濾。驗證器有很多,但是很多驗證器我們其實已經通過這個field或者一些引數就可以指定了。比如emailvalidator,我們可以通過emailfield來指定,比如maxvaluevalidator,我們...
Django之form表單提交並驗證
1.提交的時候會報錯 2.需要在setting裡面注釋掉一句話,關閉跨站請求檢查。3.注釋掉以後,理論上就不報錯了。可我還是卡殼了。4.通過在網上找方法,修復錯誤。原因 表單action欄位沒有以 結尾,將action 修改為 action a b 即可修復。將action欄位修正如下 這裡需要說明...