관리 메뉴

Storage Gonie

44. (app3) Django id, pw만 입력받는 회원가입에서 email까지 입력받도록 추가 본문

웹개발/Django 웹서비스 개발(인프런)

44. (app3) Django id, pw만 입력받는 회원가입에서 email까지 입력받도록 추가

Storage Gonie 2019. 2. 22. 17:33
반응형

1. kilogram/form.py파일 생성

from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
from django import forms

class CreateUserForm(UserCreationForm): # id, pw만 입력받은 UserCreationForm을 확장시킬것이므로 상속받음
email = forms.EmailField(required=True)

class Meta:
model = User
fields = ("username", "email", "password1", "password2") # 입력받을 필드순서 지정

def save(self, commit=True): # save메소드 오버라이
user = super(CreateUserForm, self).save(commit=False) # 기존의 id와 pw를 저장. commit이 Flase인 이유는 2번 저장하는것 방지.
user.email = self.cleaned_data["email"] # user 객체에 email 값 추가.
if commit:
user.save() # 객체에 대한 모든 정보를 DB에 저장.
return user

2. kilogram/views.py 수정

- 위에서 정의한 사용자 정의 폼 클래스 import

- CreateUserView클래스에서 from_class를 위에서 정의한 사용자 정의 폼 클래스로 변경해준다.

from .forms import CreateUserForm
#form_class = UserCreationForm # id, pw만 받는 폼 클래스
form_class = CreateUserForm # id, email, pw 까지 받는 사용자 정의 폼 클래스


반응형
Comments