Быстрый и, надеюсь, легкий. Я следую за документами на 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 раз.
Кроме того, если я вхожу как пользователь с «Статусом персонала», я показываю как аутентифицированный без каких-либо проблем. Если у пользователя нет этого статуса, то он не работает.