jc.jang

3강 장고 유저 프로필 꾸미기 본문

Django/Django - 인증편

3강 장고 유저 프로필 꾸미기

jangstory 2019. 8. 28. 15:08

주제

  • 장고에서 유저 프로필을 구현하는 방법

노트

  • 2강에서 accounts app을 만들었다고 가정하고 아래를 수행한다.
  • accounts/urls.py
urlpatterns = [
    # ...,
    path('profile/', views.profile, name='profile'),
    # ...,
]
  • accounts/views.py
from django.shortcuts import render
from django.contrib.auth.decorators import login_required


@login_required
def profile(request):
    return render(request, 'accounts/profile.html')
    
  • login_required 데코레이터는 해당 뷰 요청시 로그인 되어있다면 해당 뷰를 응답하고 아니면 next 인자로 현재 페이지 주소를 주고 로그인 페이지로 연결한다.
  • accounts/templates/accounts/profile.html
{% extends "accounts/layout.html" %}

{% block content %}
    <h2>{{ user }}'s Profile</h2>
{% endblock %}
  • user라는 템플릿 변수를 통해 해당 user에 대한 정보를 알 수 있다.
  • django/contrib/auth/context_processors.py의 46번째 줄 참고
  • 컨텍스트 변수들을 넘겨 줄 때, user가 없으면 AnonymouseUser를 넘겨준다.

질문

  • user 모델에 추가적인 정보를 저장하고 싶을땐 어떻게 해야할까?
  • github 저장소를 뒤져보니 django/contrib/auth/models.py의 AbstracUser class를 재정의 하면 될 것 같다. 

요약

  • 각 유저별 정보를 보여주기 위한 목적으로 프로필 페이지를 구현할 수 있다.
  • 프로필 페이지가 필요없다면 프로젝트/settings.py에서 LOGIN_REDIRECT_URL의 값을 변경하거나 로그인 후 next 인자를 변경해줘야한다.

날짜

  • 오후 2시, 20190828
Comments