Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- intell
- 한빛미디어
- 놀이동산의슈퍼컴퓨터를작동시켜라
- texttospeech
- 인하대학교
- Xangle
- jaypark.dating
- 인하멘토링
- 타코트론
- 로그남기기
- 개발자를위한파이썬
- 2019회고
- 봉사활동
- CrossAngle
- 신영준
- 프로그래머스
- 인천남중
- 노트북덮개
- graphicdriver
- 서버로그
- 나는리뷰어다
- tacotron
- 개발자회고
- 프로그라피
- 심플소프트웨어
- 결과를얻는법
- 쇠막대기
- 우분투비트확인
- 서구동구예비군훈련장
- machinelearning
Archives
- Today
- Total
jc.jang
19강 프로필 수정 구현 본문
주제
- 프로필 수정 구현
노트
- 프로필 수정 기능을 구현한다.
- class based view는 강의에서 다뤘으므로 나는 function based view로 작성해봤다.
- accounts/urls.py
from django.urls import path, reverse_lazy
from django.contrib.auth import views as auth_views
from . import views
urlpatterns = [
# ...
path('profile/edit/', views.profile_edit, name='profile_edit'),
# ...
]
- 프로필 수정 url 등록
- accounts/forms.py
class ProfileForm(forms.ModelForm):
class Meta:
model = Profile
fields = ['bio', 'website_url']
- 프로필 수정 시 입력받을 필드를 지정함
- accounts/views.py
from django.contrib.auth.decorators import login_required
from django.shortcuts import redirect
from .forms import ProfileForm
@login_required
def profile_edit(request):
if request.method == "POST":
form = ProfileForm(request.POST)
if form.is_valid():
"""
현재 유저의 프로필을 가져오고
받은 값으로 프로필을 갱신한다.
"""
old_profile = request.user.profile
old_profile.bio = form.cleaned_data['bio']
old_profile.website_url = form.cleaned_data['website_url']
old_profile.save()
return redirect('profile')
elif request.method == "GET":
form = ProfileForm(instance=request.user.profile)
return render(request, 'accounts/profile_form.html', {
'form': form,
})
- 사용자의 프로필 데이터를 form에서 입력 받은 데이터로 갱신한다.
- accounts/templates/accounts/profile_form.html
{% extends "accounts/layout.html" %}
{% block content %}
<h2>프로필 수정</h2>
<form action="" method="post">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit">
</form>
{% endblock %}
- 프로필 수정을 위한 템플릿 파일을 작성했다.
질문
- django form, modelform이 익숙하지 않아서 onetoone filed 수정할 때 조금 고생했다.
- form 관련 강의가 있으니 빨리 듣고 싶다.
요약
- 프로필 수정 기능을 구현한다.
날짜
- 오후 10시, 20190909
'Django > Django - 인증편' 카테고리의 다른 글
21강 중복 로그인 막기 (개선) (0) | 2019.09.11 |
---|---|
20강 회원가입 시에 프로필 정보 받기 (0) | 2019.09.09 |
18강 SignupForm에 Meta.model 적용하기 (0) | 2019.09.09 |
17강 중복 로그인 막기 (0) | 2019.09.09 |
16강 Permission 시스템을 통한 사용자 접근 제한하기 (2) | 2019.09.09 |
Comments