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

这是我的表格:

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

这很好,但是我想知道为什么choicefield没有默认设置。

在页面上,它将Mr呈现为所选值,但是,如果提交了表单(请注意:此字段的默认值为True),则不会引发错误,并且表单发布数据中的值是“Ms”。

其他问题:{{ prefix.get_prefix_display }}似乎不起作用。.使用此函数的模型和形式之间是否有区别?

最佳答案

我认为您正在混合使用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

关于Django表单ChoiceField,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7660631/

10-13 02:08