2016-07-10 66 views
0

我已經看到了與此相關的所有與stackoverflow有關的鏈接。 我正在使用Django 1.9.7我嘗試在模板中看到用戶是否已通過身份驗證但我無法獲取用戶。我無法在django模板中獲取用戶

模板代碼不打印任何東西:

{{ user.is_authenticate }} 
{{ request.user.is_authenticate }} 

設置代碼:

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'templates')] 
     , 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
       'social.apps.django_app.context_processors.backends', 
       'social.apps.django_app.context_processors.login_redirect', 
      ], 
     }, 
    }, 
] 

我已經嘗試過withou social.apps和仍然沒有工作,任何想法?

+1

'用戶。 is_authenticate' vs'user.is_authenticated'? – alecxe

+0

不行,我連用戶名都找不到。 – jalanga

+0

請求是None,用戶是None,因爲他們沒有打印任何東西。 – jalanga

回答

1

確保您通過請求上下文中的觀點,這是什麼樣的用戶添加到環境...

from django.template import RequestContext 

def some_view(request): 
    form = None 
    # request.user accesses user here 
    return render_to_response('some_template.html', {'form':form}, context_instance=RequestContext(request)) 

現在在模板中可以使用:

{% if request.user.is_authenticated %}{{ request.user.email }}{% endif %}