在 Django 中保存 MultipleChoiceField

esc*_*pee 2 django save multiple-choice

我正在尝试在 Django 中保存一个 MultipleChoiceField。模型.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)
Run Code Online (Sandbox Code Playgroud)

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

视图.py

bf = formForm(request.POST)
    if bf.is_valid():
        temp = bf.save(commit=False)
        temp.stud_user_id = userid
        temp.save()
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 5

您不能将多选字段保存到 CharField。CharField 是单个元素。MulitpleChoiceField 是多个。

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