Django RESTフレームワークを使用して、複数のモデルオブジェクトを「一緒に」、つまり単一のトランザクションで作成したいと考えています。Django RESTフレームワークでトランザクションを使用するには?
目的は、各オブジェクトがトランザクションの終了時にのみ表示されることです。
どうすればいいですか?後のあなたは、データベース操作を実行する機能の周りのデコレータとしてdjango.db.transaction
から
Django RESTフレームワークを使用して、複数のモデルオブジェクトを「一緒に」、つまり単一のトランザクションで作成したいと考えています。Django RESTフレームワークでトランザクションを使用するには?
目的は、各オブジェクトがトランザクションの終了時にのみ表示されることです。
どうすればいいですか?後のあなたは、データベース操作を実行する機能の周りのデコレータとしてdjango.db.transaction
から
使用atomic
:
obj_list
は人口(ただし、保存されていない)モデルオブジェクトのリストが含まれている場合、これは1の一環として、すべての操作を実行しますがトランザクション。あなたは(たとえば)、その後、同じAPIリクエストの一部として、複数のオブジェクトを保存したい場合、それらはすべて同じ型の場合、その後、あなたはAPIへのオブジェクトのリストを投稿できる
@atomic def save_multiple_objects(obj_list): for o in obj_list: o.save()
django db transactions
を使用してこれを達成できます。以下のコードを参照してください
from django.db import transaction
with transaction.atomic():
model_instance = form.save(commit=False)
model_instance.creator = self.request.user
model_instance.img_field.field.upload_to = 'directory/'+model_instance.name+'/logo'
self.object = form.save()
この例はこのSO postへの私の自身の答えから取られています。このようにして、before calling save() you can save/edit other dependencies