users = Users.objects.filter(**somefilters)
blogs = Blog.objects.filter(**another_filters)
BlogUserRelation = Blog.users.through
relations = []
for blog in blogs:
relations.extend([BlogUserRelation(
user_id=user.id,
blog_id=blog.id
) for user in users])
BlogUserRelation.objects.bulk_create(relations)
您可以做的是在M2M关系的中间模型上使用
bulk_create
。在我从你的例子中可以看到,你想要为一组博客分配相同的用户集。在
因此,示例实现如下所示:
就数据库查询而言,这是有效的,但是需要将所有对象加载到内存中。为了提高内存效率,您需要使用某种类型的queryset iterator并在块上遍历blog对象。在
还有一件事要记住,通常在使用
blog.users.add(users)
时,django
会检查现有的user-blog
关系并将它们排除在外,而使用bulk}create则不是这种情况,如果需要,必须手动执行。在相关问题 更多 >
编程相关推荐