私はジャンゴ1.1を使用しています。
is_active フラグに関するドキュメント
http://docs.djangoproject.com/en/1.1/topics/auth/#topics-auth
これは、ユーザーがログインできるかどうかを制御しません。認証パスでは is_active フラグをチェックするものは何もないため、is_active が False であることに基づいてログインを拒否する場合は、自分のログインでそれを確認する必要があります。見る。ただし、has_perm() などのメソッドを使用したパーミッション チェックはこのフラグをチェックし、アクティブでないユーザーに対しては常に False を返します。
私は django-registration (最新の 0.8 アルファ) を使用しており、すべてのデフォルトのバックエンドを使用しています。django-registration の前提全体は is_active フラグに基づいています。つまり、ユーザーがアクティブ化した後にのみ設定されます。ただし、ユーザーがログインすると、django.contrib.auth.views.login が使用されていることがわかります。auth_urls.py のコードからこれを確認できます。
ユーザーが登録したが、まだアクティブ化していない場合、「あなたはアカウントをアクティブ化していません」という行に沿って何かを言うメッセージを表示したい
現在のデフォルトの動作は、「ユーザー名とパスワードが一致しません」というフォームのエラー メッセージです。
ビューでログインデコレータも使用しています
@login_required
私の質問は次のとおりです。
編集:ジェームズとヘンリーに感謝します。質問の説明があまり上手ではなかったと思います。これをやり直しました。
- django のドキュメントには、ユーザーのログイン時に is_active が決定要因として使用されていないと書かれています。これは明らかに当てはまりません。自分で試してみてください。これがコードのどこで発生するのかわかりません。誰か知っていますか?私が見る限り、django-registration でも django.contrib.auth でも発生しません。
- 上記のエラー メッセージを表示するには、どうすればよいでしょうか。私はdjango-registrationを使用しているため、多くの配管がすでに行われていることに注意してください。これを変更したり、すべてを書き直したりしないでください。可能であれば、私は....「エレガントな」ソリューションを探しています。
前もって感謝します
Q1に関しては、