2013-06-11 10 views
1

Из моего приложения django я посылаю электронное письмо, которое содержит ссылку на другую страницу: domain/project/user/1, для которой требуется вход в систему, поэтому он автоматически перенаправляется в домен/учетные записи /авторизоваться. Но когда пользователь делает это, он перенаправляется на: domain/project /, но я хочу, чтобы он был перенаправлен на: domain/project/user/1.
Как я могу это сделать?django логин на предыдущую страницу

ответ

2

По умолчанию перенаправление осуществляется по адресу ?next= в URL-адресе, если у вас есть правильные препроцессоры контекста запроса в настройках.

settings.py:

TEMPLATE_CONTEXT_PROCESSORS += (
    "django.core.context_processors.request", 
) 

И в шаблоне, где вы будете представляемого пользователю ,:

base.html:

<a href="{% url 'login' %}?next={{request.path}}">Log me in here</a> 
+0

я увидел, что по другой теме , но перенаправление выполняется автоматически, и я не хочу использовать ссылку. – user1847729

+0

Затем вы можете написать промежуточное программное обеспечение, которое обнаруживает, что 'next' присутствует в контексте, и ссылка происходит от имени пользователя и автоматически регистрирует пользователей там. – karthikr

+0

Я нашел решение. В моем приложении я использую промежуточное программное обеспечение для входа в систему, с этим я могу получить первый URL: domain/project/user/1. так что я могу изменить атрибут следующего = 'класса LoginRequiredMiddleware: .... Защиту process_request (я, запрос): .... возвращение HttpResponseRedirect (settings.LOGIN_URL + + firstPath 'следующая =?')' Спасибо – user1847729

Смежные вопросы