首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ManyToManyField验证错误

ManyToManyField验证错误
EN

Stack Overflow用户
提问于 2012-08-02 15:53:51
回答 1查看 97关注 0票数 1

我使用的是选择的jquery。我已经在ManyToManyForeignKey上添加了null=Trueblank=True。但是为什么我在模板中的ManyToManyField上得到验证错误呢?我尝试在没有填写ManyToManyField和ForeignKey的情况下提交表单,在管理中可以正常工作,但在模板中不能。你能帮帮忙吗?谢谢

ManyToManyError - Enter a list of values.

模型

代码语言:javascript
复制
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

代码语言:javascript
复制
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'}),
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-02 16:12:10

错误消息"Enter a list of value“暗示从表单返回的值不是列表或元组的实例,我认为问题是您使用的是Select小部件,它返回单个值(‘’如果为空),也许您应该使用SelectMultiple

代码语言:javascript
复制
class MovieForm(ModelForm):
    class Meta:
        model = Movie
        exclude = ('slug', 'image')
        widgets = {
            'director': SelectMultiple(attrs={'class': 'chzn-select'}),
            ...
        } 

或者,您可以在清理表单之前手动将值转换为list/tuple。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11773227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档