카테고리 없음

Django_commit=False

멍주다배 2025. 1. 15.
 
commit=False는 데이터베이스에 바로 저장하는 것이 아닌 수정이 필요한 경우 사용합니다.
 

commit=False 없이 저장하는 경우

form.save()​
  • 폼 데이터를 즉시 데이터베이스에 저장
  • 폼 데이터를 수정하지 않고 그대로 저장할 때 사용 가능

 

commit=False를 사용하는 경우

post = form.save(commit=False)
post.author = request.user  # 예: 작성자 정보 추가
post.save()
  • form.save(commit=False)는 폼 데이터를 데이터베이스에 저장하지 않고 해당 모델 객체만 반환
  • 반환된 객체를 수정한 후 명시적으로 .save()를 호출하여 데이터베이스에 저장
  • 저장 전에 추가로 값을 설정하거나 다른 작업을 수행해야 할 때 필요
    • 예) author, created_at과 같은 특정 필드를 추가로 설정해야 하는 경우

따라서

  • 단순 저장: commit=False 없이 form.save()를 사용
  • 추가 작업 필요: commit=False를 사용하여 수정 후 저장
  • 반드시 필요한 경우에만 사용하는 것이 좋음, 불필요하게 사용할 경우 코드가 복잡해짐