在Django上提交表单时,CheckboxSelectMultiple验证错误

时间:2017-01-09 22:59:54

标签: django-models django-forms

models.py

class MyModel(models.Model):
      OPTION_CHOICES = (('a','a'),('b','b'))
      option = models.CharField(max_length=1, choices=OPTION_CHOICES)

forms.py

class MyForm(ModelForm):
      class Meta:
            model=MyModel
            fields=['option']
            widgets = {'option':CheckboxSelectMultiple(),}

当我尝试提交表单时,我遇到验证错误,无法提交。当我偶然CheckboxSelectMultipleRadioSelect时,它的工作正常。那么如何使用checkboxSelectMultiple

解决此问题

1 个答案:

答案 0 :(得分:0)

option = models.CharField(max_length=1, choices=OPTION_CHOICES)

只接受一个字符。通过提交带有多选小部件的表单,您可以尝试存储列表:

[u'a']

这当然会导致错误:

Select a valid choice. [u'a'] is not one of the available choices.

再次:'a''b'是字符串和有效选择,[u'a']是一个无效的列表。

要存储列表(或多个关系),您应该选择其他一些字段类型。什么字段类型完全取决于您的项目要求。没有足够的信息可以为您提供建议。