Notice
Recent Posts
Recent Comments
Link
초보 개발자
django login form 2 with FormView 본문
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 |