Django形成ChoiceField

Hed*_*ide 5 forms django

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

这是我的表格:

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

这工作正常,但我想知道为什么选择字段不采取默认..

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

其他问题: {{ prefix.get_prefix_display }}似乎不起作用..模型和表单之间是否存在此功能的用法?

Tim*_*ony 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