2
我開始學習Django,並剛剛遇到Django的形式(我一直在Django模板中使用過去的手冊形式)。何時使用django表單vs手動表單?
我就應該總是使用Django形式無論怎樣,還是有場景中我應該寫的形式在手動模板?
我開始學習Django,並剛剛遇到Django的形式(我一直在Django模板中使用過去的手冊形式)。何時使用django表單vs手動表單?
我就應該總是使用Django形式無論怎樣,還是有場景中我應該寫的形式在手動模板?
您可以使用自己的形式,但最好是使用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
這將是模型對象的複製品 - 這大大減少了驗證和表單處理所需的工作量。
另外,看看django-floppyforms(http://django-floppyforms.readthedocs.org/en/latest/)和django-crispy-forms(http://django-crispy-forms.readthedocs.org/en/latest /)可以更好地控制和靈活處理模板中的django表單。 –