如何在django中以下拉框的形式获得多个选择字段

时间:2014-04-24 03:51:36

标签: python django forms

非常感谢任何帮助,我是django的新手。

class studentRegister(forms.Form):
courseList = forms.ModelMultipleChoiceField(queryset=Courses.objects.all())

谢谢你,感谢您的时间,我只是想修改这种类型的表格,这样我可以一次多选两个或更多选项,并在列表中返回?

2 个答案:

答案 0 :(得分:1)

一个想法是使用Bootstrap类和Python。

<强> forms.py

class yourForm(forms.Form):
options = forms.MultipleChoiceField(
    choices=[(option, option) for option in
             Options.objects.all()], widget=forms.CheckboxSelectMultiple(),
    label="myLabel", required=True, error_messages={'required': 'myRequiredMessage'})

<强> view.py

def anything(...):
    (...)
    form = yourForm( )
    (...)
    return render(request, "myPage.html", {'form': form})

<强> myPage.html下

(...)
{% csrf_token %}
    {% for field in form %}
        <div class="col-md-12 dropdown">
            <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">{{ field.label_tag }}
                <span class="caret"></span>
            </button>
            <div class="dropdown-menu">
                <div><a href="#">{{ field }}</a></div>
            </div>
        </div>
    {% endfor %}
(...)

答案 1 :(得分:0)

我认为你可以使用SelectMultiple小部件。 Source

class studentRegister(forms.Form):
    courseList = forms.ModelMultipleChoiceField(queryset=Courses.objects.all(), widget=forms.SelectMultiple)

如果这不符合您的需求,您可以尝试使用此snippet