39

下記の機種について質問です。ManyToManyField管理者からではなく、views.py からデータを入力したいと考えています。

genresしかし、フィールドにデータを追加するにはどうすればよいManyToManyFieldですか?

ビュー.py

content = Movie_Info(id = m_id,
                    title = data[0].get('title'),
                    overview = data[0].get('overview'),
                    release_date = data[0].get('release_date'),
                )
content.save()

models.py

class Movie_Info_genre(models.Model):
    genre = models.CharField(max_length=100)

class Movie_Info(models.Model):
    id             = models.IntegerField(primary_key=True)
    title          = models.CharField(max_length=100, blank=True, null=True)
    overview       = models.TextField(blank=True, null=True)
    release_date   = models.CharField(max_length=10, blank=True, null=True)
    genres         = models.ManyToManyField(Movie_Info_genre)
4

1 に答える 1

79

関連フィールドにaddメソッドを使用します。

# using Model.object.create is a shortcut to instantiating, then calling save()
myMoveInfo = Movie_Info.objects.create(title='foo', overview='bar')
myMovieGenre = Movie_Info_genre.objects.create(genre='horror')
myMovieInfo.genres.add(myMoveGenre)

他のフィールドの変更とは異なり、これを行う前に両方のモデルがデータベースに存在している必要があるためsave、多対多の関係を追加する前に呼び出す必要があります。追加はすぐにデータベースに影響するため、後で保存する必要はありません。

于 2012-04-28T17:57:15.270 に答える