Django
[Django] user CRUD(7) - 회원 정보 및 비밀번호 수정(U)
기록하는_사람
2022. 12. 21. 19:24
회원 정보 수정
📌 회원 정보 수정
① profile.html에 정보 수정 버튼 생성.
<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 'update' %}"><button>MOD</button></a>
<a href="{% url 'delete' %}"><button>DEL</button></a>
② update.html
<h1>UPDATE PAGE</h1>
<form method="post">
{% csrf_token %}
<input type="text" value="{{ user.username }}" disabled><br><br>
<input name="umail" type="text" value="{{ user.email }}"><br><br>
<input name="ufn" type="text" value="{{ user.first_name}}"><br><br>
<input name="uln" type="text" value="{{ user.last_name }}"><br><br>
<button>UPDATE</button>
<a href="{% url 'index' %}"><button type="button">HOME</button></a>
</form>
③ 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"),
path('signup/', views.signup, name="signup"),
path('update/', views.update, name="update")
]
④ acc/views.py
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout
from .models import User
# Create your views here.
...
def update(request):
if request.method == "POST":
u = request.user
um = request.POST.get("umail")
uf = request.POST.get("ufn")
ul = request.POST.get("uln")
u.email, u.first_name, u.last_name = um, uf, ul
u.save()
return redirect("profile")
return render(request, "acc/update.html")
비밀번호 수정
📌 비밀번호 수정
① update.html에 비밀번호 수정 버튼 생성.
<h1>UPDATE PAGE</h1>
<form method="post">
{% csrf_token %}
<input type="text" value="{{ user.username }}" disabled><br><br>
<input name="umail" type="text" value="{{ user.email }}"><br><br>
<input name="ufn" type="text" value="{{ user.first_name}}"><br><br>
<input name="uln" type="text" value="{{ user.last_name }}"><br><br>
<button>UPDATE</button>
<a href="{% url 'chpass' %}"><button type="button">CHANGE PASSWORD></button></a>
<a href="{% url 'index' %}"><button type="button">HOME</button></a>
</form>
② chpass.html
<h1>CHANGE PASSWORD PAGE</h1>
<form method="post">
{% csrf_token %}
<input name="npass" type="password" placeholder="NEW PASSWORD"><br><br>
<button>CHAGE</button>
<a href="{% url 'index' %}"><button type="button">HOME</button></a>
</form>
③ 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"),
path('signup/', views.signup, name="signup"),
path('update/', views.update, name="update"),
path('chpass/', views.chpass, name="chpass")
]
④ acc/views.py
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout
from .models import User
# Create your views here.
...
def chpass(request):
if request.method == "POST":
u = request.user
np = request.POST.get("npass")
u.set_password(np)
u.save()
return redirect("login")
return render(request, "acc/chpass.html")