Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 개발자를위한파이썬
- 개발자회고
- CrossAngle
- Xangle
- 신영준
- graphicdriver
- jaypark.dating
- 심플소프트웨어
- texttospeech
- 놀이동산의슈퍼컴퓨터를작동시켜라
- 한빛미디어
- 타코트론
- 로그남기기
- 노트북덮개
- 프로그라피
- 서구동구예비군훈련장
- machinelearning
- 결과를얻는법
- 나는리뷰어다
- 프로그래머스
- intell
- 인하대학교
- 우분투비트확인
- 인천남중
- 봉사활동
- 서버로그
- 인하멘토링
- 2019회고
- tacotron
- 쇠막대기
Archives
- Today
- Total
jc.jang
9강 로그인 아이디로 이메일 사용하기 본문
주제
- 로그인 아이디로 이메일을 사용한다.
노트
- AbstractUser 유저 모델 클래스에서 username필드를 아이디로 사용한다.
- 그리고 여기 있는 email은 필수 값이 아닌 필드이므로 email필드로 로그인하는 것이 아니라
- username필드에 test123@gmail.com같은 값을 입력하여 로그인하는 것이다.
- username에 이메일 값을 입력해도 되지만, 해당 필드의 유효성 검사를 UnicodeUsernameValidator에서 한다.
- 올바르지 않은 이메일 값도 회원가입이 가능하다.
- 정확한 유효성 검사 로직을 작성해보자. 이 작업은 반드시 뷰가 아니라 폼에서 작성해야 함
- accounts/forms.py
from django.contrib.auth.forms import UserCreationForm
from django.core.validators import validate_email
class SignupForm(UserCreationForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['username'].validators = [validate_email]
self.fields['username'].help_text = '이메일 형식을 입력하세요.'
self.fields['username'].label = 'Email'
def save(self, commit=True):
user = super().save(commit=False)
user.email = user.username
if commit:
user.save()
return user
- UserCreationForm을 상속 받아서 __init__과 save를 재정의함
- fields의 validators, help_text, label등을 재정의함
- django/core/validators.py에서 구현된 validate_emial 메소드를 사용하여 올바른 이메일인지 확인한다.
- user.emial 필드에 user.username 값을 넣어준다.
질문
- form field들 접근하는? 방법에 대해 알고 싶다. 예를 들면 __init__에서 self.fields라든지...
- form에 forms, model 등 알아봐야할게 많은 것 같다.
요약
- username 필드를 그대로 사용하되 email validators를 사용한다.
- 유효성 검사 로직은 뷰가 아니라 폼에서 작성한다.
날짜
- 오후 6시, 20190902
'Django > Django - 인증편' 카테고리의 다른 글
11강 이메일을 통한 URL 로그인 만들기 (0) | 2019.09.03 |
---|---|
10강 가입환영 이메일 보내기 (0) | 2019.09.03 |
8강 회원가입 시 next 인자 처리하기 (0) | 2019.09.02 |
7강 회원가입과 동시에 로그인하기 (0) | 2019.09.02 |
6강 가입과 동시에 Profile만들기 (1) | 2019.08.29 |
Comments