许多领域验证

2024-03-29 11:33:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用jquery。我在ManyToManyForeignKey上添加了null=Trueblank=True。但是为什么我在模板中的ManyToManyField上会出现验证错误呢?我试图提交表格,但没有填写许多领域和外国人在管理键,它的工作,但没有在tempalte。你能帮忙吗?谢谢

许多错误-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)

电影形式

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'}),
    }

Tags: truemodels错误movieselectnulllengthattrs
1条回答
网友
1楼 · 发布于 2024-03-29 11:33:06

错误消息“Enter a list of values”意味着表单返回的值不是list或tuple的实例,我认为问题是您使用Select小部件,它返回单个值(“”如果为空),也许您应该使用SelectMultiple

class MovieForm(ModelForm):
    class Meta:
        model = Movie
        exclude = ('slug', 'image')
        widgets = {
            'director': SelectMultiple(attrs={'class': 'chzn-select'}),
            ...
        } 

也可以在表单清理之前手动将值转换为list/tuple。你知道吗

相关问题 更多 >