【问题标题】:Django Iterating Over CheckboxSelectMultiple Renders NumbersDjango 遍历 CheckboxSelectMultiple 渲染数字
【发布时间】:2013-10-20 01:09:13
【问题描述】:

我正在尝试迭代使用 CheckboxSelectMultiple 小部件的 MultipleSelect 表单并显示其中的每个复选框。这是迭代的代码:

{% for choice in form.mp4_rasters %}
       <label class="checkbox inline">
          {{ choice }}
       </label>
{% endfor %}

这是我声明的表格:

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 %}

该代码适当地呈现名称,但它不包含复选框。我可以添加什么以使其呈现复选框以及表单中定义的适当名称?

【问题讨论】:

    标签: django forms django-forms widget django-widget


    【解决方案1】:

    变化:

    MP4_CHOICES = ('240p', '360p', '720p', '1080p')
    

    MP4_CHOICES = (('240p', '240p'), 
                   ('360p', '360p'), 
                   ('720p', '720p'), 
                   ('1080p', '1080p'))
    

    您看到这些数字的原因是,choices 需要一个元组,并且由于您没有提供一个元组,所以它正在这样做。

    ('240p') 被评估为 ('2', '4', '0', 'p') ,并且将 ('2', '4', '0', 'p')[1] 显示在下拉列表中。因此(4, 6, 2, 0)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      • 2021-02-11
      • 2018-10-18
      • 2012-07-01
      • 2020-11-26
      • 1970-01-01
      相关资源
      最近更新 更多