2011-09-20 4 views
1

私は悩み、一般的に介して、一度にオブジェクト1を作成するを参照してくださいドキュメント、このかどうかを見つけるのを抱えている、例えば、いくつかのフォームの入力に基づいてDjango:新しいモデルインスタンスのリストを1回のメソッド呼び出しでデータベースに追加できますか?

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つずつ、非効率的に見えます。

ありがとうございます!

答えて

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") 
... ]) 
1

私は同様の質問へのブランドンKonkleの返事がまだ有効であると考えている。要するにQuestion about batch save objects in Django

:悲しいことに、いいえ、あなたはそうするために、手動でクエリdjango.db.cursor使用する必要があります。データセットが小さい場合やパフォーマンスの重要性が低い場合、ループスルーは実際には悪くなく、最も簡単な解決策です。また

、このチケットを参照してください。https://code.djangoproject.com/ticket/661

関連する問題