【发布时间】:2015-05-03 15:35:33
【问题描述】:
我有一个问题,有人可以从给定的集合中选择多个选项。像这样:
什么是A?
- B
- C
- D
在这里,填写表格的人可以选择 3 个选项的任意组合。例如,B、C、BC、BCD
我正在尝试将此信息存储在数据库中。
我的模型中的一个字段是 CommaSeparatedIntegerField,如下所示:
class Tutor(models.Model):
want_list = models.CommaSeparatedIntegerField(max_length=50, null=True,)
我创建了一个使用此模型的表单,如下所示:
class MyForm(forms.ModelForm):
class Meta:
model = Tutor
fields = ['want_list']
widgets = {'want_list': forms.CheckboxSelectMultiple(choices=P3_CHOICES),}
由于我得到的默认小部件是 TextInput,因此我将小部件更改为 CheckboxSelectMultiple。我正在使用软盘形式。
但是,这样数据似乎无法验证。这是我得到的错误:
“只输入用逗号分隔的数字。”
...每当我选择任何选项并尝试提交表单时。
如何解决此错误?我在模型中使用了错误的字段吗?还是表单中的错误小部件?实现这样的事情的一般方法是什么?我想这是许多网站上常见的事情,并且必须有一些我不知道的标准方法来解决这个问题。
提前致谢。
编辑:
P3_CHOICES = (
(1, 'B'),
(2, 'C'),
(3, 'D'),
)
【问题讨论】:
-
P3_CHOICES的值是多少? -
对不起。将其添加到问题中,因为这是相关信息。
标签: django django-models django-forms