2013-10-15 57 views
2

假設我有以下型號:Django爲查詢集中的每個項目添加多對多字段?

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

什麼是一個博客添加到爲多個用戶如該領域的最佳途徑我想向所有用戶添加Blog博客實例(即User.object.all())。我是否必須逐個迭代每個結果,或者是否有辦法一次完成所有結果?

謝謝。

回答

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

這將做一個數據庫查詢。