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를 사용하여 수정 후 저장
- 반드시 필요한 경우에만 사용하는 것이 좋음, 불필요하게 사용할 경우 코드가 복잡해짐