私はこのウェブサイトを見ていますが、機能していないため、これを行う方法を理解できないようです。現在のサイトユーザーがログイン(認証)されているかどうかを確認する必要があります。
request.user.is_authenticated
ユーザーがログインしていることは確かですが、次のように返されます
>
(上記のURLの最初のセクションから)次のような他の要求を行うことができます。
request.user.is_active
成功した応答を返します。
私はこのウェブサイトを見ていますが、機能していないため、これを行う方法を理解できないようです。現在のサイトユーザーがログイン(認証)されているかどうかを確認する必要があります。
request.user.is_authenticated
ユーザーがログインしていることは確かですが、次のように返されます
>
(上記のURLの最初のセクションから)次のような他の要求を行うことができます。
request.user.is_active
成功した応答を返します。
回答:
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
クラスのメソッドです。
Django 1.10以降
メソッドではなく属性を使用します。
if request.user.is_authenticated: # <- no parentheses any more!
# do something if the user is authenticated
同じ名前のメソッドの使用はDjango 2.0では非推奨であり、Djangoのドキュメントには記載されていません。
CallableBool
ブール値ではなくaであり、いくつかの奇妙なバグを引き起こす可能性があることに注意してください。たとえば、JSONを返すビューがありました
return HttpResponse(json.dumps({
"is_authenticated": request.user.is_authenticated()
}), content_type='application/json')
プロパティrequest.user.is_authenticated
に更新された後、例外がスローされていましたTypeError: Object of type 'CallableBool' is not JSON serializable
。解決策は、シリアル化時にCallableBoolオブジェクトを適切に処理できるJsonResponseを使用することでした。
return JsonResponse({
"is_authenticated": request.user.is_authenticated
})
request.user
。ユーザーがログインしているかどうかは、ブラウザセッションなどのリクエストのコンテキストでのみ重要です。
次のブロックが機能するはずです:
{% if user.is_authenticated %}
<p>Welcome {{ user.username }} !!!</p>
{% endif %}
あなたの見解では:
{% if user.is_authenticated %}
<p>{{ user }}</p>
{% endif %}
コントローラ関数にデコレータを追加します:
from django.contrib.auth.decorators import login_required
@login_required
def privateFunction(request):
request.user.is_authenticated
アプリケーションが常にユーザーをログアウトさせることがわかっている場合は、ユーザーにとってより良い
ジャンゴ2.0+のバージョンが使用します。
if request.auth:
# Only for authenticated users.
詳細については、https://www.django-rest-framework.org/api-guide/requests/#authをご覧ください。
request.user.is_authenticated()はDjango 2.0+バージョンで削除されました。
request.user.is_authenticated
まだ有効です。あなたはないジャンゴ・休息・フレームワークのドキュメントを参照しているジャンゴ