[Django] 트랜잭션 - 기타 메서드

JinUk Lee·2024년 4월 24일
0

DRF 학습하기

목록 보기
54/57

개요

django의 transaction 메서드에 대해 학습한다.

commit(), rollback()

def atomic_test(request):
    
    transaction.set_autocommit(False)
    Post.objects.filter(pk=1).update(read_count=150)
    transaction.rollback()
    Post.objects.filter(pk=1).update(read_count=200)
    transaction.commit()

두 함수는 수동으로 커밋이나 롤백을 하는 함수인데, 기본적으로 django는 autocommit 이다.
따라서, 해당 함수를 사용하려면 transaction.set_autocommit(False) 로 자동 커밋 옵션을 종료하고 사용해야하며, atomic 블록 내에선 사용할 수 없다.

on_commit(func)

트랜잭션이 commit이 완료되고나서 함수를 실행시켜주는 함수이다.

트랜잭션이 rollback 된다면 실행되지 않는다.

profile
개발자 지망생

0개의 댓글