В Pinax / Django, как мне перенаправить ссылку после входа в систему? - PullRequest
2 голосов
/ 05 апреля 2011

в Pinax, если у меня есть ссылка, требующая входа в систему (т. Е. Я использую декоратор @login_required), как мне перенаправить на эту ссылку после входа в систему вместо перенаправления на «что дальше» ???

Спасибо

Ответы [ 2 ]

4 голосов
/ 06 апреля 2011

Просто установите LOGIN_REDIRECT_URL .

EDIT Кажется, что Pinax также поддерживает другую настройку, LOGIN_REDIRECT_URLNAME , которая, кажется, делает то же самоечто-то вроде LOGIN_REDIRECT_URL, но для него задано имя URL, предположительно, чтобы вам не приходилось вызывать reverse в вашем файле settings.py.

Для более «динамических» перенаправлений, pinax.apps.account.views.login представление использует pinax.apps.account.utils.get_default_redirect для поиска URL-адреса перенаправления из следующего:

  1. AПараметр GET или POST с именем «next» (по умолчанию, хотя его можно настроить).
  2. Настройка LOGIN_REDIRECT_URL
  3. Настройка LOGIN_REDIRECT_URLNAME

Код вget_default_redirect фактически проверяет в сеансе ключ 'redirect_to', который предположительно содержит одно из значений, определенных в настройках, так как метод не пытается посмотреть на django.conf.session самостоятельно.Однако документирующая строка утверждает, что проверяет эти параметры, и, похоже, именно это вы испытываете в своем проекте.

0 голосов
/ 19 мая 2011

Добавьте следующий скрытый ввод в ваш файл templates / account / login.html внутри формы входа в систему:

<input type="hidden" name="next" value="{{ request.GET.next }}" />

Это должно сработать. Придумал решение после прочтения найденной здесь документации: http://docs.djangoproject.com/en/dev/topics/auth/

...