通过中间模型保存多对多关系

时间:2019-06-26 02:47:45

标签: django django-models

我有一个看起来像这样的模型:

class Post(models.Model):
    title       = models.CharField(max_length=100, null=False)
    content     = HTMLField()
    created_at  = models.DateField(auto_now_add=True)
    authors     = models.ManyToManyField(User)

当我创建这样的帖子时:

x = Post(title="blah", content="blah)

如何在此帖子中添加多位作者?作者模型是作为中间模型创建的,我尚未定义。

1 个答案:

答案 0 :(得分:0)

首先,您需要在添加任何多对多关系(refer documentation)之前保存模型实例。

 x.save()

要添加多个用户,请通过用户的查询集对其进行循环。

users = User.objects.filter(foo=bars)
for item in users:
    x.authors.add(item)