• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

form.save(commit=False)

20.06.10 22:57 작성 조회수 265

1

form.save(commit=False)

이렇게 하는 이유가 중복저장을 막기 위해서라고 하셨는데

저렇게 하면 중복저장이 안되는 이유를 더 자세히 알고 싶습니다. 

PostForm에는  photo와 content만 넘어오기 때문에

author정보가 없어서 저장이 안되므로,

post.author = request.user로 author정보를 주고 나서야

저장이 되는 것이 아닌가요?

답변 1

답변을 작성해보세요.

0

JIN YOU KIM님 안녕하세요 ^ ^

답변이 늦었네요 ㅠ ㅠ 죄송합니다 

commit=False 요 부분이 궁금하셨군요 

중복저장이라는 말이 오히려 더 햇갈리게 해드렸을 수도 있다는 생각이 드네요 

' 호출 지연' 이라는 말로 설명을 드리는게 더 이해가 쉬우셨을것 같네요

form.save(commit=False)

작동과정을 보면 form이 작동하고 나서 save가 작동하도록 하는 역할이라고 보시면 됩니다

아래 블로그에 굉장히 설명이 잘되어있어서 설명을 대신하겠습니다 

보시면 분명히 이해가 되실거에요

https://whatisthenext.tistory.com/131

좀더 내용을 보고 싶으시면 commit=false와 관련된 공식문서입니다

https://docs.djangoproject.com/ko/3.0/topics/forms/modelforms/

질문 감사드립니다!! 답변 늦어서 지송해요 ㅠ