为Django Crispy表单迭代多个可选字段列表

为Django Crispy表单迭代多个可选字段列表,django,django-forms,django-crispy-forms,Django,Django Forms,Django Crispy Forms,下面是一个代码片段,它使用for循环生成一个包含3个multiplechoicefield的列表。请注意,每个字段都必须显式命名为django cripsy表单才能呈现它们,但必须有一种方法可以用脆表单迭代这些字段,所以我不必事先知道多个Echoicefied的列表有多大。有什么想法吗 items = tuple(items) locations.append(forms.MultipleChoiceField(widget=forms.SelectMultiple, label

下面是一个代码片段,它使用for循环生成一个包含3个multiplechoicefield的列表。请注意,每个字段都必须显式命名为django cripsy表单才能呈现它们,但必须有一种方法可以用脆表单迭代这些字段,所以我不必事先知道多个Echoicefied的列表有多大。有什么想法吗

    items = tuple(items)
    locations.append(forms.MultipleChoiceField(widget=forms.SelectMultiple, label = '', choices=items))


field1 = locations[0]
field2 = locations[1]
field3 = locations[2]

def __init__(self, *args, **kwargs):

    self.helper = FormHelper()
    self.helper.form_id = 'id-qkview-form'
    self.helper.form_show_errors = True
    self.helper.form_action = 'F5-fetch-qkview'
    self.helper.form_method = 'POST'
    self.helper.form_class = 'form-vertical'
    self.helper.label_class = 'col-lg-2'
    self.helper.field_class = 'col-lg-4'
    self.helper.add_input(Submit('submit', 'Submit'))

    self.helper.layout = Layout(
        Fieldset(
            'LOC01',
            'field1',
        ),
        Fieldset(
            'LOC02',
            'field2',
        ),
        Fieldset(
            'LOC01',
            'field3',
        ),
     )

    super(F5qkviewForm, self).__init__(*args, **kwargs )