改变字段显示

你可能首先注意到:当你在本地显示这个表单的时,message字段被显示成input type=”text” ,而它应该被显示成<textarea >。我们可以通过设置 widget 来修改它:

  1. from django import forms
  2. class ContactForm(forms.Form):
  3. subject = forms.CharField()
  4. email = forms.EmailField(required=False)
  5. message = forms.CharField(**widget=forms.Textarea** )

forms框架把每一个字段的显示逻辑分离到一组部件(widget)中。 每一个字段类型都拥有一个默认的部件,我们也可以容易地替换掉默认的部件,或者提供一个自定义的部件。

考虑一下Field类表现 校验逻辑 ,而部件表现 显示逻辑