📢 공지사항
home

Updateview를 이용한 비밀번호 변경 구현

복습
수강일
수강일_
숫자
25
주차
1주차
체크
태그
Accountapp Implementation
class AccountUpdateView(UpdateView): model = User form_class = UserCreationForm success_url = reverse_lazy('accountapp:hello_world') template_name = 'accoountapp/update.html'
Python
복사
views.py
path('update/<int:pk>', AccountUpdateView.as_view(), name='update'),
Python
복사
urls.py
{% extends 'base.html' %} {% load bootstrap4 %} {% block content %} <div style = "text-align: center; max-width: 600px; margin: 4rem auto"> <div class="mb-4"> <h4>Change Info</h4> </div> <form action="{% url 'accountapp:update' pk=user.pk %}" method="post"> {% csrf_token %} {% bootstrap_form form %} <input type="submit" class="btn btn-dark rounded-pill col-6 mt-3"> </form> </div> {% endblock %}
HTML
복사
update.html
{% if target_user == user %} <a href="url 'accountapp:update' pk=user.pk "> <p> Change Info </p> </a> {% endif %}
HTML
복사
detail.html 에 추가하기

문제점!

change info를 들어가게 되면 username도 같이 바꿔서 submit이 가능하다. id를 바꿀 수 없게 username을 비활성화 시켜주는 작업이 필요하다.
from django.contrib.auth.forms import UserCreationForm class AccountUpdateForm(UserCrationForm) def __init__(self, *args, **kwargs) super().__init__(*args, **kwargs): self.fields['username'].disabled = True
Python
복사
forms.py