일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- react
- 카톡
- SSA
- EC2
- AWS
- socket io
- git
- crud
- NeXT
- docker
- node
- Class
- Vue
- wetube
- dict
- 중급파이썬
- flask
- TypeScript
- 파이썬
- RDS
- merge
- SAA
- Props
- pandas
- S3
- MongoDB
- async
- 채팅
- lambda
- 튜플
- Today
- Total
초보 개발자
django password_validator 본문
UsercreationForm을 사용하면 알아서 이걸 실행시켜주는데 나는 아직 저 Form 사용법을 모르기 때문에
password_validator라는 모듈만 불러와서 우리가 만든 signup form에 적용시켜주려고한다.
password_validator란 우리가 10자이상 적어야 하거나, 너무 단순하거나, 숫자로만 이루어져있거나할 때 django가 error메시지를 보내서 사용자에게 제대로 작성하라고 하는 것이다.
clean_password method안에 이거 딱 한줄만 추가해주었다.
password_validation 모듈안에 우리가 사용할 validate_password이다.
첫번째인자로 password를 받고, 두번째인자로 user을 받는 것 같다. 근데 기본값이 None이길래 안줘도되는건가?? 싶어서 안줘보았더니 안주어도 작동은 잘 된다.
궁금증🔍
안적어주면 기본 AUTH_USER_MODEL에 등록되어있는 user모델을 자동으로 불러오는 건가?
3번째 인자에 별도로 validator를 주지 않으면 settings.py에 있는 AUTH_PASSWORD_VALIDATION에 있는 녀석들로 체크하는 것 같다.
그렇게 validation을 다 돌고, 에러가 있다면 errors배열에 그 err들을 추가해주고 마지막에 errors 배열을 return 한다.
나는 clean_password1에서 저걸 사용해서 바로 사용이 가능한것 같지만 만약 clean함수에서 사용했다면
try:
password_validation.validate_password(password, self.instance)
except forms.ValidationError as error;
self.add_error('password2',error)
이런식으로 password2를콕 찝어 넣어주어야 password칸에 error메시지가 들어갈 것 같다.
따라서 저 한줄 코딩만으로 우리는 단순한지, 8자 이하인지, 숫자로만 이루어져있는지를 확인해준다.
다만, 영어로 나오는게 좀 아쉽고, 나도 하나 validator를 만들어 볼 수 있찌 않을까 라는 생각에 조금 수정을해보았다.
2번 적어준 이유는 영어로 되어있을 땐 단수형, 복수형 적혀있던데 한글로 적으면 어떻게 해야할지 몰라서 일단 두개 적었다. 이런식으로 나머지 것들도 한글화 해주고
맨 아래에 나만의 validator를 만들어 주고
setting.py에도 추가해주면
아래와 같이 잘 나타나는 것을 확인할 수가 있다 !
좀 어려운 개념이 많아서 겉 핡기 식으로 밖에 할 수 없었다 ㅠㅠ
'Python > airbnb 클론' 카테고리의 다른 글
django message (0) | 2022.03.14 |
---|---|
django login, signup page (0) | 2022.03.13 |
send email django (0) | 2022.02.18 |
django sign-up form with model form (0) | 2022.02.16 |
django sign-up form (0) | 2022.02.16 |