2011-09-20 74 views
1

如果我基於某種形式的輸入,例如創建新模型對象的列表,Django:我可以通過單個方法調用將新模型實例列表添加到數據庫嗎?

new_items = [] 
for name, value in self.cleaned_data.items(): 
    if name.startswith('content_item_'): 
     new_items.append(ContentItem(item=value)) 

# can I add the entire new_items list to the database in one swoop? 

我無法找到這是否在該文檔中,它一般是指通過創建對象一次一個.save()方法。但是當你有一個要添加的對象的整個列表時,一次一個似乎效率低下。

謝謝!

回答

1

https://docs.djangoproject.com/en/dev/ref/models/querysets/#bulk-create

編輯:不幸的是,這不是在1.3

原來的答案

感謝上帝bulk_create

然後,您可以做這樣的事情:

ContentItem.objects.bulk_create(new_items) 

對於那些懶得點擊鏈接,這裏是從文檔的例子:

>>> Entry.objects.bulk_create([ 
...  Entry(headline="Django 1.0 Released"), 
...  Entry(headline="Django 1.1 Announced"), 
...  Entry(headline="Breaking: Django is awesome") 
... ]) 
相關問題