Django REST 프레임 워크를 사용하여 여러 개의 모델 객체를 "함께"즉 단일 트랜잭션으로 생성하고자합니다.Django REST 프레임 워크와 트랜잭션을 사용하는 방법은 무엇입니까?
목적은 각 개체가 트랜잭션의 (성공한) 끝에서만 표시된다는 것입니다.
어떻게하면됩니까?
Django REST 프레임 워크를 사용하여 여러 개의 모델 객체를 "함께"즉 단일 트랜잭션으로 생성하고자합니다.Django REST 프레임 워크와 트랜잭션을 사용하는 방법은 무엇입니까?
목적은 각 개체가 트랜잭션의 (성공한) 끝에서만 표시된다는 것입니다.
어떻게하면됩니까?
django.db.transaction
에서 사용 atomic
함수 주위에 장식하면 이후에있는 데이터베이스 작업 수행과 같이
obj_list
경우는 인구 (만 저장되지) 모델 객체의 목록을 포함,이 하나의 일환으로 모든 작업을 실행합니다 트랜잭션. 그들은 같은 유형의 모든 경우
@atomic def save_multiple_objects(obj_list): for o in obj_list: o.save()
그런 다음 같은 API 요청의 일환으로 여러 개체를 저장하려면
(예를 들어), 다음은 API에 개체의 목록을 게시 할 수 끝점 - 참조 Django REST framework post array of objectsdjango 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