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 |
Tags
- 인하대학교
- 놀이동산의슈퍼컴퓨터를작동시켜라
- 신영준
- 나는리뷰어다
- jaypark.dating
- 인하멘토링
- 인천남중
- machinelearning
- graphicdriver
- 개발자회고
- texttospeech
- 2019회고
- 서버로그
- 프로그라피
- 우분투비트확인
- 프로그래머스
- tacotron
- 쇠막대기
- Xangle
- 심플소프트웨어
- intell
- 한빛미디어
- 개발자를위한파이썬
- 노트북덮개
- 로그남기기
- 결과를얻는법
- 봉사활동
- CrossAngle
- 서구동구예비군훈련장
- 타코트론
Archives
- Today
- Total
jc.jang
20강 회원가입 시에 프로필 정보 받기 본문
주제
- 회원가입 시에 프로필 정보 받기
노트
- 회원가입 시 프로필은 만드는데, 프로필 정보도 받도록 수정해보자.
- accounts/forms.py에서 정의한 SignupForm을 재정의한 적이 있다.
- form은 기본적으로 하나의 모델에만 적용이 가능하다. 따라서 bio, website_url 정보를 받아오고 user save할 때 profile을 저장하자.
- accounts/forms.py
from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from django.core.validators import validate_email
from .models import User, Profile
class SignupForm(UserCreationForm):
bio = forms.CharField(required=False)
website_url = forms.URLField(required=False)
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):
user = super().save(commit=False)
user.email = user.username
user.save()
bio = self.cleaned_data.get('bio', None)
website_url = self.cleaned_data.get('website_url', None)
Profile.objects.create(user=user, bio=bio, website_url=website_url)
return user
class Meta(UserCreationForm.Meta):
model = User
fileds = UserCreationForm.Meta.fields + ('bio', 'website_url')
- 예전에, 회원가입과 동시에 profile 만들기를 하면서 model signal에서 프로필을 생성한 적이 있다.
- 지금은 profile과 User를 동시에 생성해야하므로 on_post_save_for_user에서 프로필을 생성하는 코드는 삭제해야한다.
- bio, website_url 필드를 정의한다.
- save를 재정의하고 입력받은 데이터로 Profile을 생성한다.
요약
- form을 이용해 회원가입과 동시에 프로필 정보를 받을 수 있다.
날짜
- 오후 11시, 20190909
'Django > Django - 인증편' 카테고리의 다른 글
21강 중복 로그인 막기 (개선) (0) | 2019.09.11 |
---|---|
19강 프로필 수정 구현 (0) | 2019.09.09 |
18강 SignupForm에 Meta.model 적용하기 (0) | 2019.09.09 |
17강 중복 로그인 막기 (0) | 2019.09.09 |
16강 Permission 시스템을 통한 사용자 접근 제한하기 (2) | 2019.09.09 |
Comments