2013-12-19 2 views
2

Я использую Django 1.6, django.contrib.auth.views. Ниже я использую определения URL-адреса входа и выхода из системы. Прямо сейчас, когда пользователь нажимает мою ссылку на выход из системы, открывается окно «logout_then_login», как и должно было, но когда пользователь возвращается в систему, параметр «следующий» не определен и страница пересылается по умолчанию «учетные записи/профиль», дорожка. То, что я бы предпочел, - это logout_then_login view forward «следующее» значение для входа в систему.Как передать параметр «Следующий» в режим Django Auth logout_then_login?

Например, пользователь находится на странице/foo/bar, когда они выходят из системы. Я бы хотел, чтобы они были отправлены на экран входа в систему с параметром '/ foo/bar' в качестве следующего параметра, поэтому, когда они снова заходят в систему, они возвращаются на ту же страницу, на которой они были. Я хочу, чтобы он был динамическим, на основе request.path, когда нажата кнопка выхода из системы. Я знаю статическое решение переопределения значения по умолчанию для следующего, когда оно не определено.

Текущий urls.py:

from django.contrib.auth.views import login, logout_then_login 


urlpatterns = patterns('base.views', 
    url(r'^accounts/login/$', login, name='login'), 
    url(r'^accounts/logout/$', logout_then_login, name='logout'), 
) 

Я попытался с помощью extra_context аргумент для logout_then_login, но даже не знаю, как это должно выглядеть с использованием имени URL в шаблоне:

<a href="{% url 'logout' extra_context={'next': request.path } %}">Log Out</a> 

Am Я на правильном пути - или есть лучший способ сделать это?

ответ

1

Хорошо, так что это оказалось легко. Я уже думал об этом, когда пытался перебрать следующий параметр в тег шаблона url.

Я просто необходимо, чтобы лавировать на следующий параметр после шаблона URL тега:

<a href="{% url 'logout' %}?next={{request.path}}"> Log Out</a> 
Смежные вопросы