Django:如何将数据保存到ManyToManyField?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django:如何将数据保存到ManyToManyField?相关的知识,希望对你有一定的参考价值。

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

但是如何将数据添加到genres字段ManyToManyField

views.朋友

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.朋友

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)
答案

使用add method for related fields

# 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。由于add会立即影响数据库,因此您无需事后保存。

以上是关于Django:如何将数据保存到ManyToManyField?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Django admin 时未保存 ManyToMany 字段

Django:如何从 ManyToMany 迁移到 ForeignKey?

django manytomany 字段使用 through 和 formwizard

保存自定义用户模型时 Django ManyToMany 覆盖

保存方法manytomany

如何使用 django rest 框架保存多对多字段对象