如何获取Django表单ChoiceField中选项的标签?
我有一个叫做 ChoiceField
的选择字段,现在我该怎么获取它的 标签 呢?
class ContactForm(forms.Form):
reason = forms.ChoiceField(choices=[("feature", "A feature"),
("order", "An order")],
widget=forms.RadioSelect)
form.cleaned_data["reason"]
只会给我 feature
或 order
的 值,就是这些。
10 个回答
29
这是最简单的方法:模型实例参考:Model.get_FOO_display()
你可以使用这个函数,它会返回显示名称:ObjectName.get_FieldName_display()
把ObjectName
替换成你的类名,把FieldName
替换成你想要获取显示名称的字段名。
172
可以查看关于 Model.get_FOO_display() 的文档。应该像这样使用:
ContactForm.get_reason_display()
在模板中,可以这样使用:
{{ OBJNAME.get_FIELDNAME_display }}
98
这可能会对你有帮助:
reason = form.cleaned_data['reason']
reason = dict(form.fields['reason'].choices)[reason]