Django - 具有多个选择的下拉表单

Nic*_*gel 5 python forms django

我需要建立一个django 下拉 forms.Form字段的指导,我可以在其中选择多个选项.我需要office在表单的字段上选择多个位置.

提交时,表单需要返回list所选办公室(例如["New York", "Los Angeles"]["Austin"]).返回a tuple也是可以接受的.


我现在能做的最好是建立一个multipleChoiceField用于office下列要求:

from django import forms

class my_Form(forms.Form):

    OPTIONS = [
        ("0", "*ALL"),
        ("1", "New York"),
        ("2", "Los Angeles"),
        ]

    office = forms.MultipleChoiceField(
            choices=OPTIONS,
            initial='0',
            widget=forms.SelectMultiple(),
            required=True,
            label='Office',
        )
Run Code Online (Sandbox Code Playgroud)

导致此表单字段布局:

在此输入图像描述


但是,我希望此字段为下拉列表,以减少页面上的空间.

我找到了这个djangosnippet但是(1)有些人提到它看起来过时了(我无法确认),以及(2)我首先要检查内置的django表单/小部件设置是否可以完成此任务使用自定义代码.

Dan*_*man 6

"下拉"框不支持HTML中的多个选择; 浏览器将始终将其呈现为图像显示的扁平框.

您可能想要使用某种JS小部件 - Select2是一种流行的小部件.有几个Django项目 - django-select2,django-easy -select--旨在简化将它集成到您​​的表单中; 我对其中任何一个都没有经验.

(是的,那个片段 - 就像Djangosnippets上的许多东西一样 - 已经过时了;"newforms"在Django 1.0版之前被重命名为"形式".)