2012-05-08 3 views
2

У меня есть что-то вроде этого:Используйте значение для 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 %} 

Как это сделать?

Заранее спасибо.

+0

@ IgnacioVazquez-Abrams Этот вопрос предназначен для поля модели с вариантами выбора, в то время как этот для полей формы. AFAIK нет соответствующих 'get_XXX_display' для полей формы, а если есть, то это (а) другая вещь и (б) не сразу видно, как здесь обрабатывать. – Dougal

+0

Hah. И здесь я всегда обвиняю других в том, что я не читал вопрос (не потому, что я всегда ошибаюсь, об этом, заметьте ...). –

ответ

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_labelgets documented только, но вы можете смело использовать его до сих пор.

 Смежные вопросы

  • Нет связанных вопросов^_^