我需要建立一个django下拉框forms.Form
字段,在该字段中我可以选择多个选项。我需要在表单的office
字段上选择多个位置。
提交时,表单需要返回所选办公室的list
(例如["New York", "Los Angeles"]
或["Austin"]
)。返回tuple
也是可以接受的。
我现在所能做的就是为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',
)
导致此表单域布局:
但是,我希望这个字段是一个下拉列表,在页面上占用更少的空间。
我发现了这个djangosnippet,但是(1)有几个人提到它似乎过时了(我无法确认),并且(2)我首先想检查内置的django表单/小部件安装程序是否可以在使用自定义代码之前完成此任务。
“下拉”框不支持HTML中的多个选择;浏览器将始终将其呈现为如图像所示的扁平框。
您可能想使用某种JS小部件-Select2是一种流行的小部件。有几个Django项目-django-select2,django-easy-select-旨在简化将其集成到表单中的过程;我对这两个项目都没有经验。
(是的,这个片段——就像Djangosnippets上的许多东西一样——已经严重过时;“newforms”甚至在Django的1.0版本之前就被重命名为“forms”。)
您可以使用Django select2选择多个选项。在相应的HTML文件中包含以下代码。
现在很晚了,但希望能对别人有所帮助。
您还可以结合使用
django forms
和select2小部件Select2MultipleWidget
,使其看起来更干净。不要忘记安装和导入django select2小部件
相关问题 更多 >
编程相关推荐