我有两个关于Django ChoiceField的问题:
这是我的表格:
class ContactForm(forms.Form):
GENDER = (
(1, _("Mr.")),
(2, _("Ms.")),
)
prefix = forms.ChoiceField(choices=GENDER)
...
这很好用,但我想知道为什么选择字段不采用默认值。
在页面上,它将Mr渲染为所选值,但是如果表单已提交(注意:required = True是此字段的默认值),则不会抛出错误,并且我的表单发布数据中的值为“Ms “而不是。
其他问题:
{{ prefix.get_prefix_display }}
似乎不起作用。使用此函数的模型和表单之间是否存在差异?
答案 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