19. 정보수정 - eungyukm/DjangoBase GitHub Wiki

정보수정

  1. user_app에 views.py/modify_user 함수에서 로그인한 사용자 정보를 가져와 html에 적용합니다.
def modify_user(request) :

    # 로그인한 사용자의 정보를 가져옵니다.
    login_user_idx = request.session['login_user_idx']
    login_user_model = user_app.models.UserTable.objects.get(user_idx=login_user_idx)
    print(login_user_model)

    template = loader.get_template('modify_user.html')
    return HttpResponse(template.render()) 
  1. 데이터 처리
def modify_user(request) :

    # 로그인한 사용자의 정보를 가져옵니다.
    login_user_idx = request.session['login_user_idx']
    login_user_model = user_app.models.UserTable.objects.get(user_idx=login_user_idx)
    # print(login_user_model)

    render_data = {
        'login_user_data' : login_user_model
    }

    template = loader.get_template('modify_user.html')
    return HttpResponse(template.render(render_data, request)) 
  1. modify.html 수정
<form action="modify_user.html" method="post">
<div class="form-group">
 <label for="user_name">이름</label>
 <input type="text" id="user_name" name="user_name" class="form-control" value="{{login_user_data.user_name}}" disabled="disabled"/>
</div>
<div class="form-group">
 <label for="user_id">아이디</label>
 <input type="text" id="user_id" name="user_id" class="form-control" value="{{login_user_data.user_id}}" disabled="disabled"/>
</div>
 <div class="form-group">
  <label for="user_pw">비밀번호</label>
  <input type="password" id="user_pw" name="user_pw" class="form-control" value="{{login_user_data.user_pw}}"/>
 </div>
 <div class="form-group">
  <div class="text-right">
   <button type="submit" class="btn btn-primary">정보수정</button>
  </div>
 </div>					
</form>
  1. 수정 처리를 진행합니다.
  • action 처리 및 csrf token처리를 합니다.
<form action="/user/modify_user_result" method="post">
{% csrf_token %}
  1. user_app/urls.py에 modify_user_result 주소를 등록합니다.
from django.urls import path
from . import views


urlpatterns = [
    path('join', views.join, name='join'),
    path('login', views.login, name='login'),
    path('modify_user', views.modify_user, name='modify_user'),
    path('join_result', views.join_result, name='join_result'),
    path('login_result', views.login_result, name='login_result'),
    path('logout', views.logout, name='logout'),
    path('modify_user_result', views.modify_user_result, name='modify_user_result'),
]
  1. 정보 수정 처리 views.py
@csrf_exempt
def modify_user_result(request) :
    user_pw = request.POST['user_pw']
    # 로그인한 사용자 번호
    login_user_idx = request.session['login_user_idx']

    # 로그인한 사용자 정보를 가져옵니다.
    login_user_model = user_app.models.UserTable.objects.get(user_idx=login_user_idx)
    # 새로운 정보를 수정
    login_user_model.user_pw = user_pw
    login_user_model.save()

    message = '''
            <script>
                alert('수정되었습니다')
                location.href = '/user/modify_user'
            </script>
            '''
    return HttpResponse(message)
⚠️ **GitHub.com Fallback** ⚠️