Найти - Пользователи
Полная версия: Проверка аутентификации в темплейте
Начало » Python для новичков » Проверка аутентификации в темплейте
1
Minuteman
Всем добрый вечер!

Продолжая изучать сей замечательный фреймворк, наткнулся на следующую проблему, которую не могу решить уже длительное время.
Есть base.html - общий темплейт такой, который вызывается в другие темплейты посредством {% extends base.html %}
В него я хочу вставить ссылку Login которая будет ссылаться на страницу с формой для авторизации с логином и паролем, если пользователь не атворизован и в случае успешной авторизации будет перебрасывать на главную страницу, и соответственно Logout, ссылка, которая будет разлогинивать пользователя, если так можно выразиться и перебрасывать на главную страницу.
Вставляю я следующий кусок кода в base.html (после body конечно же):

{% if user.is_authenticated %}
      	<a href="{% url "logout" %}">Logout</a>
{% else %}
	<a href="{% url "login" %}">Login</a>
{% endif %}

В роутах у меня прописано следующее:
    url(r'^accounts/login/$', 'django.contrib.auth.views.login'),
    url(r'^accounts/logout/$', 'django.contrib.auth.views.logout', {'next_page': '/'}),

Однако при этом при успешном залогинивании и выходе всегда стоит Login, т е функционал не работает.
Далее я почитал на форумах, что это проблема в контекстовых процессорах в настройках, но у меня вроде бы все необходимое прописано:

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.core.context_processors.request',
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.debug',
    'django.core.context_processors.i18n',
    'django.core.context_processors.media',
    'django.core.context_processors.static',
    'django.core.context_processors.tz',
    'django.core.context_processors.request',
    'django.contrib.messages.context_processors.messages',
)

Благодарю за любые подсказки.


Budulianin
Minuteman

Эту тему нужно было создавать в разделе Django

Убери дубль-строку 'django.core.context_processors.request', если не поможет, то покажи, как ты в view ответ отдаёшь.
bu_
Это есть - from django.template import RequestContext?
В шаблон должен отдаваться request:
return render_to_response(“index.html”, context_instance=RequestContext(request))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB