Переадресация имени пользователя Django не работает?

Я перехожу на мою веб-страницу 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'),

Итак, каковы возможные причины для этого?

Ответ 1

Необходимо добавить

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

В мою форму для входа. Он отправил обратно URL-адрес входа без токена next, а затем попытался перенаправить.

Ответ 2

Он перенаправляет вас к переменной настроек LOGIN_REDIRECT_URL.

Это происходит, когда выполняется следующее:

if not redirect_to or '//' in redirect_to or ' ' in redirect_to:
                redirect_to = settings.LOGIN_REDIRECT_URL

Скорее всего, ваша "следующая" переменная пуста или содержит мусор.