Django形成ChoiceField

时间:2011-10-05 11:33:12

标签: django forms

我有两个关于Django ChoiceField的问题:

这是我的表格:

class ContactForm(forms.Form):
   GENDER = (
       (1, _("Mr.")),
       (2, _("Ms.")), 
   )
   prefix = forms.ChoiceField(choices=GENDER)
   ...

这很好用,但我想知道为什么选择字段不采用默认值。

在页面上,它将Mr渲染为所选值,但是如果表单已提交(注意:required = True是此字段的默认值),则不会抛出错误,并且我的表单发布数据中的值为“Ms “而不是。

其他问题: {{ prefix.get_prefix_display }}似乎不起作用。使用此函数的模型和表单之间是否存在差异?

1 个答案:

答案 0 :(得分:10)

我认为你正在混合使用FormFields和ModelFields。您的FormField可以使用“initial”参数设置默认选项:

https://docs.djangoproject.com/en/dev/ref/forms/fields/#initial

但它在模型中由ModelField表示,可以使用'default'参数设置默认值:

https://docs.djangoproject.com/en/dev/ref/models/fields/#default