1. 程式人生 > >Django網站搭建——form表單提交問題

Django網站搭建——form表單提交問題

在Django中我們可以通過封裝model來獲得form,也可以單獨定義一個form,然後在view中對提交過來的資料進行處理。

一般來說通過model封裝來的form是這樣進行定義的:

class <modelname>Form(forms.ModelForm):

         class meta:

                 model = modelname

                field = ['attrr1','attrr2']

單獨定義的form則繼承forms.Form

class <name>Form(forms.Form):

           name1 = forms.CharField(label=u' 驗證碼', 
        widget=forms.TextInput(attrs={'class':'form-control', 'id':'check_code','placeholder':u'輸入驗證碼'}))

這種定義可以方便在網頁進行標籤化顯示內容,在此基礎上還可以通過定義clean函式,來進行簡單的資料驗證。

在view函式中獲得form表單提交的資料也很簡單:

當驗證表單form.is_valid為真時,通過form.cleaned_data['name1']來獲得資料。注意這裡的字典內引用值為name1也就是定義的表單中的屬性名稱,這是因為在定義表單變數時

並沒有指定其顯示時候的name屬性,當提交時,系統會自動為其新增name屬性,而name屬性的值就是定義的變數名:可以觀察提交的form表:


    觀察到增加了name屬性。

我驗證了在屬性定義時指定name值,但是發現name值還是會被改為屬性變數值。