web-dev-qa-db-ja.com

ユーザーがログインしているかどうかを確認する方法(正しくuser.is_authenticatedを使用する方法)?

私は見ています このウェブサイト しかしそれがうまくいかないのでこれを行う方法を理解することができないようです。現在のサイトユーザーがログインしている(認証されている)かどうかを確認する必要があります。

request.user.is_authenticated

ユーザーがログインしていることを確認したにもかかわらず、それだけで返されます。

>

私は他のリクエストをすることができます(上記のURLの最初のセクションから):

request.user.is_active

これは成功した応答を返します。

209
Rick

Django 1.10以降のアップデートis_authenticatedはDjango 1.10の属性になりました。このメソッドは下位互換性のためにまだ存在していますが、Django 2.0では削除される予定です。

Django 1.9以上の場合

is_authenticatedは関数です。あなたはそれを好きに呼ぶべきです

if request.user.is_authenticated():
    # do something if the user is authenticated

Peter Rowellが指摘したように、あなたをつまずかせているのは、デフォルトのDjangoテンプレート言語では、関数を呼び出すための括弧についていけないことです。それで、あなたはテンプレートコードでこのような何かを見たかもしれません:

{% if user.is_authenticated %}

しかし、Pythonコードでは、これは確かにUserクラスのメソッドです。

451
Brian Neal

次のブロックは動作するはずです。

    {% if user.is_authenticated %}
        <p>Welcome {{ user.username }} !!!</p>       
    {% endif %}
15
Sopan

あなたの見解では:

{% if user.is_authenticated %}
<p>{{ user }}</p>
{% endif %}

あなたのコントローラ関数にデコレータを追加します。

from Django.contrib.auth.decorators import login_required
@login_required
def privateFunction(request):
2
Cubiczx