39

我对以下模型有疑问。我想ManyToManyField从views.py 中填充,而不是从Admin 中填充。

但是如何将数据添加到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()

模型.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 回答