1

私は選択したjqueryを使用しています。ととを追加null=Trueblank=Trueました。しかし、なぜテンプレートで検証エラーが発生するのでしょうか? 管理者で ManyToManyField と ForeignKey を入力せずにフォームを送信しようとしましたが、機能しますが、tempalte では機能しません。助けてくれませんか?ありがとうManyToManyForeignKeyManyToManyField

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)

ムービーフォーム

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

1 に答える 1

1

エラーメッセージ「値のリストを入力してください」は、フォームから返された値がリストまたはタプルのインスタンスではないことを意味します。問題は、単一の値を返すウィジェットを使用していると思いSelectます(''空の場合)。使用SelectMultiple:

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

または、フォームをきれいにする前に、手動で値をリスト/タプルに変換することもできます。

于 2012-08-02T08:12:09.860 に答える