Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 16, 2013 00:21:47

Minuteman
Зарегистрирован: 2013-08-19
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка аутентификации в темплейте

Всем добрый вечер!

Продолжая изучать сей замечательный фреймворк, наткнулся на следующую проблему, которую не могу решить уже длительное время.
Есть 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',
)

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


Офлайн

#2 Дек. 16, 2013 01:40:53

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

Проверка аутентификации в темплейте

Minuteman

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

Убери дубль-строку 'django.core.context_processors.request', если не поможет, то покажи, как ты в view ответ отдаёшь.



Офлайн

#3 Дек. 16, 2013 08:05:22

bu_
От:
Зарегистрирован: 2010-11-03
Сообщения: 14
Репутация: +  4  -
Профиль   Отправить e-mail  

Проверка аутентификации в темплейте

Это есть - from django.template import RequestContext?
В шаблон должен отдаваться request:
return render_to_response(“index.html”, context_instance=RequestContext(request))



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version