MyPrograming
(계속) Django Authentication 기능을 통한 정보 수정 본문
반응형
user_info_modify.html
<form class="mt-3" action="{% url 'accounts:modify' %}" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-group">
프로필 메세지 : <input type="text" class="form-control" id="profile_msg" name="profile_msg" value="{{ user.profile_msg }}">
</div>
<div class="form-group">
이메일 : <input type="email" class="form-control" id="email" name="email" value="{{ user.email }}">
</div>
<div class="form-group">
이름 : <input type="text" class="form-control" id="name" name="name" value="{{ user.first_name }}">
</div>
<div class="form-group">
새 비밀번호 : <input type="password" class="form-control" id="new_user_pw" name="new_user_pw" placeholder="변경할 비밀번호를 입력하세요.">
</div>
<button type="submit" class="btn btn-primary">수정하기</button>
</form>
modifyView.py
from django.contrib.auth.models import User
@login_required
def ModifyView(request):
if request.method == 'GET':
return render(request, 'user_info_modify.html')
elif request.method == 'POST':
user = request.user
profile_msg = request.POST.get('profile_msg')
email = request.POST.get('email')
name = request.POST.get('name')
new_user_pw = request.POST.get('new_user_pw')
user.profile_msg = profile_msg
user.email = email
user.first_name = name
user.set_password(new_user_pw)
user.save()
return redirect('instagram:list', user.username)
- user 객체를 통해 form으로 서버에 전송된 입력 데이터를 바로 DB에 변경할 수 있다.
- 정보를 수정한 후에는 user.save()를 해줘야 DB에 변경 사항이 저장된다.
- 비밀번호가 변경된 후에는 모든 세션이 자동으로 로그아웃 된다.
반응형
'Python > python 클론코딩' 카테고리의 다른 글
인스타그램 클론코딩 ( 포스팅 업로드) (0) | 2020.04.11 |
---|---|
(계속) Django Authentication 기능을 통한 로그인 / 인증 / 로그아웃 (0) | 2020.04.02 |
Django Authentication 기능을 통한 회원 가입 (0) | 2020.04.02 |
인스타그램 클론코딩 (로그인, 로그아웃) (0) | 2020.02.26 |
인스타그램 클론코딩 (회원가입) (0) | 2020.02.17 |