急ごしらえ、そしてうまくいけば簡単なもの。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>
私が理解していないのは、なぜユーザー/パスフィールドに好きなものを入力できるのか、そして無効なユーザー/パスの組み合わせでエラーが発生することはないということです。存在しないユーザーを入れたり、正しいパスワードでユーザーを修正したりすることができます。基本的には、「next」変数にあるものに送信されます。これは、実際には何もしていないと私に信じさせます。ログイン後にリクエスト変数を介して送信しているものを確認しました。「ログインに成功」したにもかかわらず、常にAnonymousUserとして表示されています。私はここで露骨に明白な何かを見落としていますか?認証に関するそのページを6〜7回読んだようです。
また、「スタッフステータス」のユーザーとしてログインすると、問題なく認証済みとして表示されます。ユーザーがそのステータスを持っていない場合、それは機能しません。