def index(request):
the_user = request.user
Djangoでは、実際のユーザーかどうかをどのように知ることができますか?私は試した:
if the_user:
しかし、「AnonymousUser」は誰もログインしていない場合でも存在します。したがって、常にtrueを返し、これは機能しません。
request.user.is_anonymous
はTrue
を返します。
の代替
if user.is_anonymous():
# user is anon user
ユーザーオブジェクトのIDが何であるかをテストして確認します。
if user.id == None:
# user is anon user
else:
# user is a real user
https://docs.djangoproject.com/en/dev/ref/contrib/auth/#anonymous-users を参照してください
ここで墓掘りを少ししていることは知っていますが、Google検索でこのページに移動しました。
ビューの定義でユーザーのログインが必要な場合は、@ login_requiredデコレーターを実装できます。
from Django.contrib.auth.decorators import login_required
@login_required
def my_view(request):
…
Login_redirect_urlが送信されたページにあったことを除いて、同様の問題がありました。私はテンプレートに入れなければなりませんでした:
{% if user.is_authenticated %}
Welcome Back, {{ username }}
{% endif %}