Django:如何将数据保存到ManyToManyField? [英] Django: How to save data to ManyToManyField?

查看:427
本文介绍了Django:如何将数据保存到ManyToManyField?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a question concerning the following model. I want to populate the ManyToManyField from views.py instead of doing it from the Admin.

但是我该怎么办将数据添加到流派字段,该字段是 ManyToManyField

But how do I add data to the genres field which is the ManyToManyField?

views.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)


推荐答案

使用相关字段的添加方法

# 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)

与修改其他字段,在执行此操作之前,两个模型都必须存在于数据库中,因此您必须在添加多对多关系之前调用保存。由于添加会立即影响数据库,因此您以后无需保存。

Unlike modifying other fields, both models must exist in the database prior to doing this, so you must call save before adding the many-to-many relationship. Since add immediately affects the database, you do not need to save afterwards.

这篇关于Django:如何将数据保存到ManyToManyField?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆