私はdjango-registrationを使用しています。Django:is_authenticatedとis_anonymousは、ログアウト後もtrueを返します。
{{user.is_authenticated }}
は、すでに/ accounts/logout /に行ってユーザーをログアウトしても、trueです。
{{user.is_anonymous }}
もtrueを返します。 djangoドキュメントによれば、これらの2つは異なるはずです:
is_anonymous:常にFalseを返します。これは、UserオブジェクトとAnonymousUserオブジェクトを区別する方法です。通常、このメソッドにはis_authenticated()を使用するほうがよいでしょう。
と
is_authenticated:常にtrueを返します。これは、ユーザーが認証されたかどうかを確認する方法です。これは許可を意味するものではなく、ユーザーが有効なユーザー名とパスワードを入力したことを示しているだけです。
私はdjango登録に付属していて、まだそれらに触れていない標準のビューを使用しています。天気予報では、私は次のコードを持っています:
{% if user.is_authenticated %}
{% user }}
{% if user.is_anonymous %}
is anonymous
{% endif $}
{% else %}
gotta login
{% endif %}
どこに問題がありますか?本当にありがとう!
UPDATE: ホームページでは、is_authenticatedとid_anonymousの両方がTrueを返します。ログインする前に/ accounts/loginに行くと、is_anonymousのみがtrueを返します。
def home(request):
return render_jinja(request, 'index.html', blah = 'ga')
UPDATE 2:それは場合に役立ちます。また、ホームページ上で、私は次のビューを持っている プリント(request.user.is_authenticatedを())Falseを与えます。その後、私が持っている:
return render_jinja(request, 'index.html', blah = 'ga')
とFALSEを返しuser.is_authenticatedテンプレート、で。
更新3: render_jinjaの代わりにrender_to_responseを使用すると、すべてが良好です。まだ頭の上にこのものの:(
私は、この動作を新しく作成したプロジェクトやアプリケーションで再現することはできません。どのバージョンのDjangoを使用していますか?どのようにユーザーをログインさせた後、ユーザーをログアウトしていますか? –
私が持っているdjangoのバージョンを確認する方法を教えてもらえれば、私はチェックして嬉しいです!暗闇の中で撮影 - 1.2 – mgPePe
私はこのオープンソースのdjango登録アプリケーションを使用しているので、私はアカウント/ログインでロギングしていて、アカウント/ログアウトでログアウトしています。コメントにコードを貼り付ける方法を教えたら、それらのリンクからのビューを貼り付けることができます – mgPePe