我使用的是选择的jquery。我已经在ManyToMany和ForeignKey上添加了null=True和blank=True。但是为什么我在模板中的ManyToManyField上得到验证错误呢?我尝试在没有填写ManyToManyField和ForeignKey的情况下提交表单,在管理中可以正常工作,但在模板中不能。你能帮帮忙吗?谢谢
ManyToManyError - Enter a list of values.
模型
class Movie(models.Model):
title = models.CharField(max_length=100)
slug = models.SlugField(unique=True, max_length=100)
director = models.ManyToManyField(Director, null=True, blank=True)
writer = models.ManyToManyField(Writer, null=True, blank=True)
producer = models.ManyToManyField(Producer, null=True, blank=True)
starring = models.ManyToManyField(Starring, null=True, blank=True)
screenplay = models.ManyToManyField(Screenplay, null=True, blank=True)
editing = models.ForeignKey(Editing, null=True, blank=True)
music = models.ForeignKey(Music, null=True, blank=True)
studio = models.ForeignKey(Studio, null=True, blank=True)
image = models.CharField(max_length=200, null=True, blank=True)MovieForm
class MovieForm(ModelForm):
class Meta:
model = Movie
exclude = ('slug', 'image')
widgets = {
'director': Select(attrs={'multiple class': 'chzn-select'}),
'starring': Select(attrs={'multiple class': 'chzn-select'}),
'producer': Select(attrs={'class': 'chzn-select'}),
'writer': Select(attrs={'class': 'chzn-select'}),
'studio': Select(attrs={'class': 'chzn-select'}),
'editing': Select(attrs={'class': 'chzn-select'}),
'screenplay': Select(attrs={'class': 'chzn-select'}),
'music': Select(attrs={'class': 'chzn-select'}),
}发布于 2012-08-02 16:12:10
错误消息"Enter a list of value“暗示从表单返回的值不是列表或元组的实例,我认为问题是您使用的是Select小部件,它返回单个值(‘’如果为空),也许您应该使用SelectMultiple
class MovieForm(ModelForm):
class Meta:
model = Movie
exclude = ('slug', 'image')
widgets = {
'director': SelectMultiple(attrs={'class': 'chzn-select'}),
...
} 或者,您可以在清理表单之前手动将值转换为list/tuple。
https://stackoverflow.com/questions/11773227
复制相似问题