Я пытаюсь перебрать форму MultipleSelect, которая использует виджет CheckboxSelectMultiple и отображает каждый флажок. Вот код для итерации:Django Iterating Over CheckboxSelectMultiple Renders Numbers
{% for choice in form.mp4_rasters %}
<label class="checkbox inline">
{{ choice }}
</label>
{% endfor %}
Вот это форма I заявил:
from django import forms
MP4_CHOICES = ('240p', '360p', '720p', '1080p')
WEBM_CHOICES = MP4_CHOICES
OGG_CHOICES = MP4_CHOICES
MISC_CHOICES = ('MP3', 'Roku')
class BatchSubmitForm(forms.Form):
video_file = forms.FileField()
framerate = forms.FloatField()
title = forms.CharField()
destination = forms.CharField()
mp4_rasters = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=MP4_CHOICES)
webm_rasters = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=WEBM_CHOICES)
ogg_rasters = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=OGG_CHOICES)
misc_rasters = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=MISC_CHOICES)
При рендеринге, я бы ожидать, что это выход каждый флажок с именем я прошел в, но вместо того, «240p», «360p» и т. Д. Я получаю номера (4, 6, 2, 0) для каждого флажка. Я также попытался рендеринга на основе выбора виджета, используя следующий код, в качестве альтернативы:
{% for choice in form.mp4_rasters.field.widget.choices %}
<label class="checkbox inline">
{{ choice }}
</label>
{% endfor %}
Этот код делает имена соответствующим образом, но тогда он не включает в себя флажок. Что я могу добавить для того, чтобы сделать так, чтобы они отображали флажки, а также соответствующие имена, определенные в форме?