我有一个关于以下型号的问题.我想从views.py填充ManyToManyField,而不是从Admin填充.

但是如何将数据添加到genres字段,也就是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)

推荐答案

使用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.因为添加会立即影响数据库,所以您不需要在之后保存.

Django相关问答推荐

使用FormWizard将信息从视图传递到表单

Django ORM Groupby

Django中的Sync_to_Async修饰器、异步视图

Django为不同应用程序发出信号

如何在Django中将可选参数传递给视图?

社工/社工简戈

情节主题更改问题

自定义身份验证 django

有什么方法可以自动设置 Debug True Django application

如何在 Django 模板视图中显示我的数据?

Django 过滤器:过滤隐藏在多层模型 struct 中的对象

使用基于类的 UpdateView 在 Django 中更新用户模型

Django 1.9:字段与父模型中不存在的字段的字段冲突

Django - 来自 QuerySet 的唯一列表

UnicodeEncodeError:ascii编解码器无法编码字符

无效的块标签: static

在 Django Admin 中过滤多对多框

Django模板转换为字符串

Django - 安装 mysqlclient 错误:需要 mysqlclient 1.3.13 或更高版本;你有 0.9.3

Django:在模块中实现 status字段的最佳方式