Django

[Django] user CRUD(5) - 회원 삭제(D)

기록하는_사람 2022. 12. 21. 18:51

회원 삭제

📌 회원 삭제

① profile.html에 delete 버튼 생성.

<h1>PROFILE PAGE</h1>

<b>USERNAME</b><input type="text" value="{{ user }}"><br><br>
<b>EMAIL</b><input type="text" value="{{ user.email }}"><br><br>
<b>FNAME</b><input type="text" value="{{ user.first_name }}"><br><br>
<b>LNAME</b><input type="text" value="{{ user.last_name }}"><br><br>

<a href="{% url 'index' %}"><button>HOME</button></a>
<a href="{% url 'delete' %}"><button>DEL</button></a>

 

② acc/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('index/', views.index, name="index")   ,
    path('login/', views.userlogin, name="login"),
    path('logout/', views.userlogout, name="logout"),
    path('profile/', views.profile, name="profile"),
    path('delete/', views.delete, name="delete"),
]

 

③ acc/views.py

from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout

# Create your views here.
def index(request):
    return render(request, "acc/index.html")

def userlogin(request):
    if request.method == "POST":
        un = request.POST.get("uname")
        up = request.POST.get("upass")
        user = authenticate(username=un, password=up)
        if user:
            login(request, user)
            return redirect("index")
        else:
            pass
    return render(request, "acc/login.html")

def userlogout(request):
    logout(request)
    return redirect("index")

def profile(request):    
    return render(request, "acc/profile.html")

def delete(request):
    request.user.delete()
    return redirect("index")