MultipleChoiceField 有问题,无法保存。
型号:
class Companyd(models.Model):
months_recurrence_options = (
("1", "Enero"),
("2", "Febrero"),
("3", "Marzo"),
("4", "Abril"),
("5", "Mayo"),
("6", "Junio"),
("7", "Julio"),
("8", "Julio"),
("9", "Septiembre"),
("10", "Octubre"),
("11", "Noviembre"),
("12", "Diciembre")
)
months_recurrence=models.CharField(max_length=100,choices=months_recurrence_options,
blank=True,null=True)
表格:
class CompanyFormAdmin(forms.ModelForm):
months_recurrence =
forms.MultipleChoiceField(required=False,widget=forms.CheckboxSelectMultiple,
choices=Company.months_recurrence_options)
class Meta:
model = Company
fields = [...
months_recurrence
...
]
观看次数
form = CompanyFormAdmin(request.POST or None, request.FILES or None, instance=obj)
if request.method == 'POST':
if form.is_valid():
form.save()
当我保存表单时,我遇到了这个问题:
{'months_recurrence': [ValidationError(["Escoja una opción válida. ['5', '7', '10'] no es una de las opciones disponibles."])]}
答案 0 :(得分:1)
由于 Charfield
仅存储一个选项,而您试图在表单中存储多个选项,因此它为您提供了一个 ValidationError
。您需要从 choices=months_recurrence_options
中删除 Charfield
并使用 different way 中的选项检查值的验证,或者将 Charfield
更改为 django-multiselectfield
。