【发布时间】:2010-10-20 04:31:08
【问题描述】:
我有一个 ChoiceField,现在如何在需要时获取“标签”?
class ContactForm(forms.Form):
reason = forms.ChoiceField(choices=[("feature", "A feature"),
("order", "An order")],
widget=forms.RadioSelect)
form.cleaned_data["reason"] 只会给我“功能”或“订单”左右。
【问题讨论】:
-
我认为您可能需要重新考虑哪个答案是公认的答案..
-
@Dan:为什么?你更喜欢哪一个?
-
@webjunkie 得票最多的那个是更以 django 为中心的那个,它需要在每个模型的基础上编写更少的代码。
-
@JackM。如果您的意思是@shacker,它实际上并没有回答问题。
get_FOO_display适用于django.db.models.ChoiceField,而不是django.forms.ChoiceField。我相信,目前接受的答案(由 Andrés 提出)是 Django 1.5 中最好的答案。 -
接受的答案也适用于更多情况。例如,如果您查询
FOO表,但想要dict而不是模型(使用FOO.objects.values()),它会进行微小的调整。 @shacker 的回答仅适用于成熟的模型。
标签: python django choicefield