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

我需要构建
django下拉表单的指导.我可以选择多个选项的字段.我需要在表单的office字段中选择多个位置.

提交时,表格需要返回所选办公室的清单(例如[“纽约”,“洛杉矶”]或[“奥斯汀”]).返回元组也是可以接受的.

我现在能做的最好的事情是为办公室建造一个multipleChoiceField,具体如下:

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',
        )

导致此表单字段布局:

《python – Django – 具有多个选择的下拉表单》

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

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

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

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

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

点赞