我需要创建一个可以选择多个选项的字段而不是一个。这些选择是固定的。例如:
如果我们想要从多个选项中选择一个选项,我们使用CharField和choices选项。SEX_CHOICES = (('M', 'Male'),
('F', 'Female')
)
class Model1(models.Model):
name = models.CharField(max_length=30)
sex = models.CharField(max_length=1, choices=SEX_CHOICES)
但是我需要类似的设置来进行多项选择。我不想使用ManyToManyField,因为选择将被修复,并且不会随着时间的推移而改变。
请指导。
答案 0 :(得分:2)
您有三个基本选择:
如果他们真的没有改变,我会选择#2。拥有一堆布尔字段可以很好地表示一组不会改变的选择。
答案 1 :(得分:1)
要进行多重选择,您可以将widget = forms.SelectMultiple添加为表单中该字段的窗口小部件。
但更大的问题是保存所选的东西。为此,您必须编写自己的字段,这样可以将多个选项保存到单个CharField中。
查看此页面: https://docs.djangoproject.com/en/dev/howto/custom-model-fields/
答案 2 :(得分:1)
检查multiselect field包裹。它做你想做的,它运作良好(至少我4个月前使用它)。您也可以查看https://pypi.python.org/pypi/django-select-multiple-field/,但我尚未对其进行测试。
答案 3 :(得分:0)
我认为你在寻找类似的东西
from django import forms
class Test(forms.Form):
OPTIONS = (
("a", "A"),
("b", "B"),
)
name = forms.MultipleChoiceField(widget=forms.SelectMultiple,choices=OPTIONS)