2012-12-04 5 views
28

장고 템플릿에서 사용자 정보를 얻는 가장 좋은 방법은 무엇입니까? 사용자가 디스플레이 "에 오신 것을 환영합니다 [사용자 이름]" django 템플릿에서 사용자 정보 얻기

  • 그렇지 않으면, 로그인 버튼을 표시, 로그인 한 경우

    1. :

      예를 들어, 난 그냥 원하는 경우.

    나는 장고 등록/인증을

  • +0

    가능한 복제 [? 장고 템플릿에 사용자 프로필에 액세스하는 방법 (http://stackoverflow.com/questions/422140/how-to-access-the-user -profile-in-a-django-template) –

    답변

    38

    다른 방법을 버전 :

    {% if user.is_authenticated %} 
        <p>Welcome, {{ user.get_username }}. Thanks for logging in.</p> 
    {% else %} 
        <p>Welcome, new user. Please log in.</p> 
    {% endif %} 
    


    참고 :

    • 사용 request.user.get_username() 템플릿 user.get_username & 전망이다. 선호하는 속성은 username입니다. Source
    • 이 템플릿 컨텍스트 변수는 RequestContext가 사용되는 경우 사용할 수 있습니다.
    • django.contrib.auth.context_processors.auth
    • 은 기본적 &으로 활성화되어 변수 사용자 당신은 django.core.context_processors.request 템플릿 상황에 맞는 프로세서를 사용할 필요가 없습니다
    • 을 포함하고 있습니다.

    출처 : https://docs.djangoproject.com/en/dev/topics/auth/default/#authentication-data-in-templates

    36
    {% if request.user.is_authenticated %}Welcome '{{ request.user.username }}' 
    {% else %}<a href="{% url django.contrib.auth.login %}">Login</a>{% endif %} 
    

    을 사용하고 당신이 당신의 settings.py에 설치된 request 템플릿 상황에 맞는 프로세서가 있는지 확인 해요 : 현재 장고에 대한

    TEMPLATE_CONTEXT_PROCESSORS = (
        ... 
        'django.core.context_processors.request', 
        ... 
    )