Ответ 1
Необходимо добавить
<input type="hidden" name="next" value="{{ next }}" />
В мою форму для входа. Он отправил обратно URL-адрес входа без токена next
, а затем попытался перенаправить.
Я перехожу на мою веб-страницу http://localhost:8000/listings/post/
, она терпит неудачу
@user_passes_test(lambda u: u.is_authenticated() and u.get_profile().shipper)
как и ожидалось, и перенаправляет меня на http://localhost:8000/login/?next=/listings/post/
, как и предполагалось, но когда я вхожу в систему снова, он не перенаправляет меня обратно на эту страницу, как предполагалось. Мне требуется /accounts/profile/
. Я не определил redirect_field_name
в любом месте, поэтому он должен искать переменную next
по умолчанию. Соответствующий бит urls.py
выглядит следующим образом:
url(r'^login/$', 'django.contrib.auth.views.login', name='login'),
Итак, каковы возможные причины для этого?
Необходимо добавить
<input type="hidden" name="next" value="{{ next }}" />
В мою форму для входа. Он отправил обратно URL-адрес входа без токена next
, а затем попытался перенаправить.
Он перенаправляет вас к переменной настроек LOGIN_REDIRECT_URL
.
Это происходит, когда выполняется следующее:
if not redirect_to or '//' in redirect_to or ' ' in redirect_to:
redirect_to = settings.LOGIN_REDIRECT_URL
Скорее всего, ваша "следующая" переменная пуста или содержит мусор.