【发布时间】:2012-04-17 03:31:37
【问题描述】:
我正在尝试找到一种方法来显示多选字段的选定/初始值的文本。
我的问题类似于这个问题,除了我不想要 value 我想要它对应的选项文本:
Display value of a django form field in a template?
例如,如果我有一个包含以下内容的表单:
GENDER_CHOICES = (
('male', _('Men')),
('female', _('Women')),
)
genders = forms.MultipleChoiceField(choices=GENDER_CHOICES,
widget=widgets.CheckboxSelectMultiple(),
initial=[gender[0] for gender in GENDER_CHOICES])
然后在我的模板中我可以这样做:
{{ form.genders.value }}
要获得一组选定的选项(即[u'male',u'female']。但是,我想从键中查找字符串值(即“Men”,“Women”),一些喜欢:
{% for key in form.genders.value %}
{{ form.genders.choices.key }}
{% endfor %}
我找不到使这项工作的方法。如何使用 Django 1.3 实现这一点?
ps - 这是一个简短的示例,但我需要使用更大的动态列表来禁止使用多个 if 语句(即“if key == 'male' 'Men' ... etc”)
【问题讨论】:
-
这可能类似于:
{% for key in form.genders.value %} {{ form.genders.get_key_display }} {% endfor %}但我也不确定。
标签: python django django-forms