Вход в Django не работает? - PullRequest
       13

Вход в Django не работает?

10 голосов
/ 15 февраля 2010

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

Так каковы возможные причины этого?

Ответы [ 2 ]

15 голосов
/ 15 февраля 2010

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

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

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

4 голосов
/ 15 февраля 2010

Перенаправляет вас в переменную настроек LOGIN_REDIRECT_URL.

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

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

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

...