장고 트랜잭션 처리 문의
장고에서 두 개의 모델을 동시에 저장할 때 두 개의 저장이 모두 성공할 때만 두 개가 데이터가 함께 저장되길 보장받고 싶습니다. 예를 들어 하나의 함수에서 a와 b 모델을 동시에 저장할 때 a는 성공하고 b가 실패할 경우 a에 저장된 데이터가 취소되기를 원합니다.
all or nothing을 쉽게 구현할 수 있는 방법이 있나요?
박응용 님 488
M 2020년 7월 9일 10:44 오후
1개의 답변이 있습니다. 1 / 1 Page
장고의 트랜잭션 처리를 위한 어노테이션을 사용하면 됩니다.
다음처럼 함수명 바로 위에 @transaction.atomic
라는 어노테이션을 붙여주면 트랜잭션 처리가 됩니다.
@transaction.atomic
def sample(request):
...
a.save()
...
b.save()
...
박응용 님
M 2020년 7월 9일 10:16 오후