django checkboxSelectMultiple - PullRequest
       8

django checkboxSelectMultiple

0 голосов
/ 08 мая 2018

Происходит что-то очень странное, я создал MultipleChoiceField в forms.py, который отображает как обычный список. Я не могу отобразить флажки. Я надеюсь, что кто-то может определить, где я мог ошибиться.

forms.py

from django import forms
from . import models
from behaviour.models import Interventions

class IncidentForm(forms.Form):

    def __init__(self,*args,**kwargs):
        self.request = kwargs.pop('request')
        super(IncidentForm,self).__init__(*args, **kwargs)

        intervention_set = Interventions.objects.filter(schoolid_id = self.request)
        intervention_choice = []
        for intervention in intervention_set:
            intervention_choice.append((intervention.pk, intervention.name))
        self.fields['intervention'].choices = intervention_choice

    intervention = forms.MultipleChoiceField(label='Intervention', choices=(), widget=forms.CheckboxSelectMultiple(), required=True,)

incident.html

<div>
    <label class="control-label">{% trans 'Intervention' %}</label><br />
    {{ form.intervention }}
    <small class="form-control-feedback"> {{ form.intervention.errors }} </small> 
</div>

HTML вывод

<div>
    <label class="control-label">Intervention</label><br>
    <ul id="id_intervention">
        <li><label for="id_intervention_0"><input type="checkbox" name="intervention" value="3" id="id_intervention_0">
        Communicate verbally with Parent</label>
        </li>
        <li><label for="id_intervention_1"><input type="checkbox" name="intervention" value="2" id="id_intervention_1">
        Non-verbal signal</label>
        </li>
        <li><label for="id_intervention_2"><input type="checkbox" name="intervention" value="1" id="id_intervention_2">
        Spoke with Student</label>
        </li>
    </ul>
    <small class="form-control-feedback">  </small> 
</div>

Снимок экрана с выводом

...