# accounts > views.py > signup
회원 가입 로직 작성
더보기
from django.shortcuts import render, redirect
from django.contrib.auth import login as auth_login
from django.contrib.auth import logout as auth_logout
from django.contrib.auth.forms import AuthenticationForm, UserCreationForm
# Create your views here.
def login(request):
if request.method == 'POST':
form = AuthenticationForm(request, request.POST)
if form.is_valid():
auth_login(request, form.get_user())
return redirect('articles:index')
else:
form = AuthenticationForm()
context = {
'form': form,
}
return render(request, 'accounts/login.html', context)
def logout(request):
auth_logout(request)
return redirect('articles:index')
def signup(request):
if request.method == 'POST':
form = CustomUserCreationForm(request.POST)
if form.is_valid():
form.save()
return redirect('articles:index')
else:
form = CustomUserCreationForm()
context = {
'form': form,
}
return render(request, 'accounts/signup.html', context)
# accounts > forms.py
회원 가입 로직 작성
UserCreationForm과 UserChangeForm 커스텀
더보기
from django.contrib.auth import get_user_model
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
# from .models import User
class CustomUserCreationForm(UserCreationForm):
class Meta(UserCreationForm.Meta):
# 현재 django 프로젝트에 활성화된 User 객체를 반환하는 함수
model = get_user_model()
class CustomUserChangeForm(UserChangeForm):
class Meta(UserChangeForm.Meta):
model = get_user_model()
fields = ('first_name', 'last_name', 'email',)
# accounts > views.py
회원 가입 로직 작성
커스텀 form 적용
더보기
from django.shortcuts import render, redirect
from django.contrib.auth import login as auth_login
from django.contrib.auth import logout as auth_logout
from django.contrib.auth.forms import AuthenticationForm
from .forms import CustomUserChangeForm, CustomUserCreationForm
# Create your views here.
def login(request):
if request.method == 'POST':
form = AuthenticationForm(request, request.POST)
if form.is_valid():
auth_login(request, form.get_user())
return redirect('articles:index')
else:
form = AuthenticationForm()
context = {
'form': form,
}
return render(request, 'accounts/login.html', context)
def logout(request):
auth_logout(request)
return redirect('articles:index')
def signup(request):
if request.method == 'POST':
form = CustomUserCreationForm(request.POST)
if form.is_valid():
form.save()
return redirect('articles:index')
else:
form = CustomUserCreationForm()
context = {
'form': form,
}
return render(request, 'accounts/signup.html', context)
# 서버 켜서 확인해보기
회원가입도 한번 진행해보자
(조건에 맞지 않으면 만들어지지 않으니까 8글자 잘 지켜서 만들자)
잘 만들어지면 이런 화면이 뜬다
DB에서 확인을 해보면, 아까 만든 데이터가 잘 들어가있다.
'WEB > Django prac' 카테고리의 다른 글
[Django prac][Authentication2] 5. 회원탈퇴 (0) | 2024.04.01 |
---|---|
[Django prac][Authentication2] 4. 회원가입 (0) | 2024.04.01 |
[Django prac][Authentication2] 2. 회원가입 (0) | 2024.04.01 |
[Django prac][Authentication] 9. 로그아웃 되었는지 확인 (0) | 2024.03.31 |
[Django prac][Authentication] 8. 로그아웃 로직 작성 (0) | 2024.03.31 |