2013-06-01 21 views
2

我開始學習Django,並剛剛遇到Django的形式(我一直在Django模板中使用過去的手冊形式)。何時使用django表單vs手動表單?

我就應該總是使用Django形式無論怎樣,還是有場景中我應該寫的形式在手動模板?

回答

2

您可以使用自己的形式,但最好是使用Django的形式,因爲它提供了更多的定製和靈活性。

這是很容易改變的「小部件」用很少的代碼更改渲染當您使用Django表單類型。

例如:

class MyForm(forms.Form): 
    my_field = forms.ChoiceField(choices=CHOICES) #choices can be a tuple 

將使爲複選框字段。 如果你想渲染同一個單選按鈕,所有你需要做的是:

class MyForm(forms.Form): 
    my_field = forms.ChoiceField(widget=forms.RadioSelect, choices=CHOICES) 

您必須手動更改整個代碼,如果你有自己的形式。

您也可以在服務器端進行一次自定義字段級驗證(例如,檢查用戶名是否唯一) - 您可以在自定義表單中實現相同的功能,但您必須自己處理每個方案。

此外,django有ModelForms這將是模型對象的複製品 - 這大大減少了驗證和表單處理所需的工作量。

+1

另外,看看django-floppyforms(http://django-floppyforms.readthedocs.org/en/latest/)和django-crispy-forms(http://django-crispy-forms.readthedocs.org/en/latest /)可以更好地控制和靈活處理模板中的django表單。 –