• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

post/forms.py의 PostForm과 templates에서의 form이 어떻게 연결 될까요?

20.06.11 22:42 작성 조회수 151

1

CommentForm같은 경우에는 {{ comment_form }}으로 CommentForm을 templates에 전달하는것 같고,

accounts의 login같은 경우는

id="{{form.username.id_for_label}}" name="form.username.html_name}}"  이렇게 

LoginForm을 templates으로 전달하는거 같더라고요.

PostForm은 templates에 따로 Postform에 대한 것을 쓰지 않고 바로 new_post.js에서 ajax 통신을 하더라고요.  이거 어떻게 이해해야 좋을까요? 

답변 1

답변을 작성해보세요.

0

이런.. king7762225님 답변이 한참늦었네요 ㅠ ㅠ 죄송해요 

세가지 케이스가 form 을 통해 database에 값을 전달 하는 것은 동일합니다

대신에 상황에 따라 방법을 조금씩 다르게 사용을 한건데요 

CommentForm은 post/views.py이 comment_new 함수형 뷰에서 post/forms.py에서 정의한 CommentForm을 가져와서 값이 존재한다면 post/comment_new_ajax.html 파일로 입력값을 보내서 댓글부분을 만들고 포스트리스트를 보여주는 부분에서 ajax를 통해 가져온다고 보시면 됩니다

acounts는 accounts/view.py 의 LoginForm 함수형 뷰에서 accounts/forms.py에서 정의한 LoginForm을 가져와서 장고가 기본적으로 가지고 있는 인증기능인 authenticate를 활용해서 로그인 기능을 구현했습니다

PostForm 같은 경우에는 post/views.py의 post_new 함수형 뷰에서 post/forms.py에서 정의한 PostForm을 가져와서 사용합니다 다만 최초에 값을 new_post.js로 넘겨서 ajax 통신을 해서 새글을 작성하자 마자 포스트 리스트에서 확인이 가능하도록 구성을 했습니다

결국 forms.py에서 정의한 폼을 url요청을 통해 동작하는 views.py에 정의한 함수형 뷰로 동작시키는 프로세스는 동일합니다 다만 필요와 상황에 따라서 조금씩 사용하는 방법이 다르다고 보시면 될것 같습니다 ^ ^ 

질문 갑사드립니다 ^^