在django中保存MultipleChoiceField

时间:2013-04-11 15:03:00

标签: django save multiple-choice

我正在尝试在Django中保存MultipleChoiceField。 model.py

choices_for_field  = 
    (('A','A'),
     ('B','B'),
     ('C','C'),
     ('D','D'),)

class names(models.Model):
    c_name = models.CharField(max_length=50, null=False, blank=False, choices=choices_for_field)

class formForm(ModelForm):    
    c_name = forms.MultipleChoiceField(label='alphabets', choices=choices_for_field, widget=CheckboxSelectMultiple)

当我保存这个时,我收到的错误是“不是一个有效的选择”。我不知道我哪里出错了。我已经检查了与此相关的所有其他问题。但没有什么对我有用。任何人都可以帮助我。

views.py

bf = formForm(request.POST)
    if bf.is_valid():
        temp = bf.save(commit=False)
        temp.stud_user_id = userid
        temp.save()

1 个答案:

答案 0 :(得分:4)

您无法将多项选择字段保存到CharField。 CharField是一个单独的元素。 MulitpleChoiceField是多重的。

我怀疑你想要做的是将一系列选择连接到CharField中的单个(逗号分隔?)值。您可以使用标准forms.TextField(使用MultipleChoiceWidget)和一个执行连接的自定义清理方法来执行此操作,但您需要从目标CharField中删除choices属性。