2

假设我有以下模型:

class User(models.Model):
    blogs = model.ManyToManyField(Blog)

将博客添加到多个用户的字段的最佳方法是什么,例如,我想向所有用户添加一个名为 blog 的博客实例(即User.object.all())。我是否必须单独迭代每个结果,或者有没有办法一次完成?

谢谢。

4

1 回答 1

6

你可以bulk_create在直通表上做一个。例如:

blog = Blog.objects.get(…)
users = User.object.all()

User.blogs.through.objects.bulk_create(
    [User.blogs.through(user_id=user.pk, blog_id=blog.pk) for user in users]
)

这将执行一个数据库查询。

于 2013-10-15T01:07:29.220 回答