django를 사용하며 html에서 views.py로 값을 넘기는 방법은 여러 가지가 있습니다.
1. form을 이용해 request값을 넘기기
2. ajax를 통하여 값을 넘기기
3. django의 forms.py를 이용해 views.py로 넘기기
이번에는 checkbox의 value값을 넘기려다 생긴 문제를 해결해 보겠습니다.
checkbox의 값을 ajax를 통해 변수값으로 받거나 forms을 사용하면 쉽게 해결할 수 있습니다.
하지만 진행중인 프로젝트의 구조를 갑자기 바꾸기는 어려울 것입니다.
bootstrap의 checkbox를 가져와 사용하고 있습니다.
체크가 되면 value값을 1로 넘기지만
만약 체크가 안되어있다면??
MultiValueDictKeyError 에러가 나옵니다...
값이 없기 때문이죠...
위에서 언급한 것처럼 회원가입의 로직은 request를 이용해 값을 넘겨주고 있습니다.
해당 checkbox 값을 ajax나 form을 이용하지 않고 보낼 수는 없을까? 하다 찾아보았습니다.
https://citylock77.tistory.com/83
해당 글을 보면 checkbox의 값을 list로 넘겨주며 list로 받고 있습니다.
해당 부분을 이용하면..
체크박스가 체크되지 않아도 리스트의 값이 0으로 넘어가
MultiValueDictKeyError를 피할 수 있습니다!
이제 html단에서 체크박스를 선택하지 않을 경우와
view단에서 선택하지 않을 경우의 유효성 검사만 체크를 하면 끝!
'코딩공부 > Python Django' 카테고리의 다른 글
python으로 크롤링(crawling) 하기 (0) | 2020.09.22 |
---|---|
os.path.isfile 함수를 이용한 secrets.json 관리하기 (1) | 2020.08.31 |
django password reset - PasswordResetView 커스터마이징 (0) | 2020.08.27 |
django password reset (2) - class PasswordReset Overriding (0) | 2020.08.22 |
django password reset (1) - class PasswordReset 사용하기 (1) | 2020.08.21 |