在模板中使用ChoiceField的值

时间:2012-05-08 01:32:44

标签: django templates choicefield

我有这样的事情:

forms.py:

AVATAR_CHOICES = (('1','option1'), ('2','option2'), ('3','option3'), 
('4','option4'))

class RegistrationForm(forms.Form):
    avatar = ChoiceField(widget=RadioSelect, choices=AVATAR_CHOICES)

我从我的观点中传递form

views.py

form = RegistrationForm()
return render_to_response('registration/register.html', {'form': form},
                          context_instance=RequestContext(request))

进入这样的模板:

registration.html:

{% for radio in form.avatar %}
  <label class="radio">{{ radio.tag }}</label>
{% endfor %}

但是我想在这些选项字段前包含图片,以便让用户选择一个头像。但是,我不知道如何从元组AVATAR_CHOICES访问键或值。主要的想法是能够做这样的事情:

{% for radio in form.avatar %}
      <label class="radio">{{ radio.tag }}</label>
      <img src="{{ STATIC_URL }}img/avatars/{{ radio.tag.value }}.jpg"/>
{% endfor %}

我该怎么做?

提前致谢。

1 个答案:

答案 0 :(得分:6)

你可以尝试

{{ radio.choice_value }}{# value of the choice of the current input #}
{{ radio.choice_label }}{# label of the choice of the current input #}
{{ radio.choice_index }}{# 0-based index #}

choice_label gets documented,但到目前为止您可以安全地使用它。