Python 何时使用django表单与手动表单?

Python 何时使用django表单与手动表单?,python,django,django-forms,Python,Django,Django Forms,我开始学习django,刚刚接触到django表单(我过去在django模板中一直使用手动表单) 我是否应该始终使用django表单,无论是在什么情况下还是在某些情况下,我都应该手动在模板中编写表单?您可以使用自己的表单,但最好使用django表单,因为它提供了更多的自定义和灵活性 使用django表单时,只需很少的代码更改,就可以轻松更改呈现的“小部件”的类型 例如: class MyForm(forms.Form): my_field = forms.ChoiceField(choi

我开始学习django,刚刚接触到django表单(我过去在django模板中一直使用手动表单)


我是否应该始终使用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()和django-crispy-forms(),以获得在模板中处理django表单的更多控制和灵活性。