초보 개발자

django login form 2 with FormView 본문

Python/airbnb 클론

django login form 2 with FormView

taehyeki 2022. 2. 15. 18:26

FormView를 사용하여 좀 더 간편하게 만들 수 있다.

 

먼저 View를 상속하지 않고 FormView를 상속하였다. 이전에는 get 요청일 때와, post요청일 때 나눠서 생각하였는데 이렇게 하면 알아서 get일때와 post일 때를 구분하여 form을 뿌려주는 것 같다.

 

form_class등 정보를 적어주는데 success_url에는 reverse가 아닌 reverse_lazy를 적어주는 이유는 CBV가 정의될 때 url은 순서상 읽히기 전이기에 core:home이라는 url을 읽어올 수가 없다. 하지만 reverse_lazy는 실행이 되는 순간 읽히기 때문에 이 문제를 해결해줄 수 있다.  

 

우리가 해줄 것은 def form_valid를 오버라이딩 해주는 것이다. 훨씬 깔끔하게 잘 된 것 같다.

 

View와 비교해봤을 때 FormView가 자동으로 해주는 것🔍

  • get, post요청시 각 각 구분하여 form을 render해준다. ( 비밀번호가 잘못된 경우 아이디 보존해줌 )
  • form에서 raise가 발생하지 않으면 form_valid함수가 실행이 되는 것 같고 이 때 우리가 로그인을 해주는 기능을 오버라이딩 해줘야함.
  • 여기서 로그인이 잘 된 경우에 success_url로 이동시켜줌

'Python > airbnb 클론' 카테고리의 다른 글

django sign-up form with model form  (0) 2022.02.16
django sign-up form  (0) 2022.02.16
django login form 1  (0) 2022.02.15
django S3, RDS 연동해보기 !  (0) 2022.02.10
django Filtering Form API  (0) 2022.02.09