промежуточное ПО для входа в django не работает должным образом - PullRequest
1 голос
/ 08 марта 2009

Быстрый и, надеюсь, легкий. Я следую за документами на http://docs.djangoproject.com/en/dev/topics/auth/, чтобы установить простую аутентификацию пользователя. У меня вообще нет особых требований, мне просто нужно знать, вошел ли пользователь в систему или нет, вот и все. Я использую декоратор login_required, и он работает точно так, как я ожидал. Я фактически использую 'django.contrib.auth.views.login' для моего вида входа в систему и точную форму, которую они показывают в документах:

{% if form.errors %}
<p>Your username and password didn't match. Please try again.</p>
{% endif %}

<form method="post" action=".">
<table>
<tr>
    <td>{{ form.username.label_tag }}</td>
    <td>{{ form.username }}</td>
</tr>
<tr>
    <td>{{ form.password.label_tag }}</td>
    <td>{{ form.password }}</td>
</tr>
</table>

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

То, что я не понимаю, почему я могу поместить все, что я хочу, в поля user / pass, и я никогда не получаю сообщение об ошибке из-за недопустимой комбинации user / pass. Я могу добавить несуществующих пользователей, исправить пользователей с правильными паролями, что бы я ни хотел в принципе, и это отправит меня к тому, что находится в переменной «next». Это заставляет меня верить, что на самом деле он ничего не делает. Я проверил, что я отправляю через переменные запроса после входа в систему, и я всегда показываю как AnonymousUser, даже если я «успешно вошел в систему». Я пропускаю что-то явно очевидное здесь? Похоже, я читал эту страницу по аутентификации 6 или 7 раз.

Кроме того, если я вхожу как пользователь с «Статусом персонала», я показываю как аутентифицированный без каких-либо проблем. Если у пользователя нет этого статуса, то он не работает.

1 Ответ

0 голосов
/ 08 марта 2009

Кажется, я это исправил:

Справа:

url(r'^login/$', 'django.contrib.auth.views.login', {'template_name': 'quiz/quiz_login.html'})

Неправильно:

url(r'^login$', 'django.contrib.auth.views.login', {'template_name': 'quiz/quiz_login.html'})

Мех.

...