# accounts > views.py
인증된 사용자에 대한 접근 제한
is_authenticated
더보기
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 import update_session_auth_hash
from django.contrib.auth.forms import AuthenticationForm, PasswordChangeForm
from .forms import CustomUserChangeForm, CustomUserCreationForm
def login(request):
if request.user.is_authenticated:
return redirect('articles:index')
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.user.is_authenticated:
return redirect('articles:index')
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)
def delete(request):
# 삭제하고자하는 User를 조회 할 필요 없다.
request.user.delete()
return redirect('articles:index')
def update(request):
if request.method == 'POST':
form = CustomUserChangeForm(request.POST, instance=request.user)
if form.is_valid():
form.save()
return redirect('articles:index')
else:
form = CustomUserChangeForm(instance=request.user)
context = {
'form': form,
}
return render(request, 'accounts/update.html', context)
def change_password(request, user_pk):
if request.method == 'POST':
form = PasswordChangeForm(request.user, request.POST)
if form.is_valid():
user = form.save()
update_session_auth_hash(request, user)
return redirect('articles:index')
else:
# PasswordChangeForm은 첫번째 인자 user가 필수이다.
form = PasswordChangeForm(request.user)
context = {
'form': form,
}
return render(request, 'accounts/change_password.html', context)
'WEB > Django prac' 카테고리의 다른 글
[Django prac][Authentication2] 13. 서버 켜서 확인해보기 (0) | 2024.04.01 |
---|---|
[Django prac][Authentication2] 12. 인증된 사용자만 접근하도록 (0) | 2024.04.01 |
[Django prac][Authentication2] 10. 비밀번호 변경 (0) | 2024.04.01 |
[Django prac][Authentication2] 9. 비밀번호 변경 (0) | 2024.04.01 |
[Django prac][Authentication2] 8. 비밀번호 변경 (0) | 2024.04.01 |