【发布时间】:2017-01-09 22:59:53
【问题描述】:
模型.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(),}
当我尝试提交表单时,出现验证错误,无法提交。当我碰巧CheckboxSelectMultiple 到RadioSelect 它工作得很好。那么如何使用checkboxSelectMultiple 解决这个问题
【问题讨论】:
-
错误说明了什么?当您同时选择“a”和“b”时,您认为会在选项字段中保存什么?您的字段应该接受多个选项。您可以将字段名称从 option 更改为 opntions 并使其成为多对多字段,以便它可以存储(与)多个对象的关系。
-
@allcaps 错误提示 选择一个有效的选项。 [u'a'] 不是可用的选项之一。
-
是的,[] 是一个列表。并且没有选项是列表。您不能将列表存储在接受单个字符的字段中。见我的其他 cmets。
-
@allcaps
ManyToManyField要求我指定与我没有的另一个模型的关系,还有其他解决方案吗?
标签: django-models django-forms