Django 1.10.3 Tutorial : 관리자 수정하기
$PRJNAME/web/prjname/templates/mgmt/admin/update_form.html
을 작성한다.<div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <h4 class="modal-title">관리자 수정</h4> </div> <div class="modal-body"> <form name="update_form" action="/mgmt/admin/update" method="post"> {% csrf_token %} <div class="form-group"> <label>아이디</label> {{ form.userid }} {{ form.id }} </div> <div class="form-group"> <label>별명 <small>(필수)</small></label> {{ form.nick }} </div> <div class="form-group"> <label>핸드폰 <small>(필수)</small></label> {{ form.mobile }} </div> <div class="form-group" style="text-align: right"> <input class="btn btn-primary" type="submit" value="관리자 수정" /> </div> </form> </div>
- 폼(
$PRJNAME/web/prjname/forms/mgmt/admin.py
)에 다음을 추가한다.... class AdminUpdateForm(forms.Form): id = forms.CharField(widget=forms.HiddenInput) userid = forms.CharField(max_length=255, widget=forms.TextInput(attrs={'class':'form-control', 'readonly':True, })) nick = forms.CharField(max_length=255, widget=forms.TextInput(attrs={'class':'form-control', 'required':True, })) mobile = forms.CharField(max_length=255, widget=forms.TextInput(attrs={'class':'form-control', 'required':True, })) ...
- 뷰(
$PRJNAME/web/prjname/views/mgmt/admin.py
)에 다음을 추가한다.... # 관리자 수정 폼 def update_form(request, id): admin = AdminModel.objects.get(id=id) data = { 'id': admin.id, 'userid': admin.userid, 'nick': admin.nick, 'mobile': admin.mobile } form = AdminUpdateForm(data) return render(request, 'mgmt/admin/update_form.html', {'form': form, 'admin_id': id}) ...
$PRJNAME/web/prjname/urls.py
에 다음을 추가한다.url(r'^mgmt/admin/update_form/(?P<id>[0-9]+)$', mgmt_admin.update_form, name='mgmt_admin_update_form'),
- 이제, 수정 버튼을 클릭하면 수정할 수 있는 폼이 나타나게 될 것이다. 마지막으로 실제로 수정을 처리하는 루틴을 작성하고 URL라우터를 등록하자.
$PRJNAME/web/prjname/views/mgmt/admin.py
에 다음을 추가한다.... # 관리자 수정 def update(request): form = AdminUpdateForm(request.POST) if form.is_valid(): admin_id = form.cleaned_data['id'] admin_nick = form.cleaned_data['nick'] admin_mobile = form.cleaned_data['mobile'] admin = AdminModel.objects.get(id=admin_id) admin.nick = admin_nick admin.mobile = admin_mobile admin.save() messages.add_message(request, messages.INFO, '관리자가 정상적으로 수정되었습니다.') else: # messages.add_message(request, messages.INFO, '관리자 입력폼의 값을 제대로 입력해주세요.') messages.add_message(request, messages.INFO, form.errors) return redirect('mgmt_admin_index') ...
$PRJNAME/web/prjname/urls.py
에 다음을 추가하고, 수정 작업을 진행해보자.url(r'^mgmt/admin/update$', mgmt_admin.update, name='mgmt_admin_update'),
댓글
댓글 쓰기