このページに従って、django 登録サイトをセットアップしました。これは非常に優れており、登録と認証は適切にラップされています。
しかし、ウェブページを表示する前に、ユーザーがログインしているかどうか、このユーザーが誰であるかを確認するにはどうすればよいですか? また、ログイン後にユーザーを新しいページに誘導するにはどうすればよいですか?
ありがとう!
このページに従って、django 登録サイトをセットアップしました。これは非常に優れており、登録と認証は適切にラップされています。
しかし、ウェブページを表示する前に、ユーザーがログインしているかどうか、このユーザーが誰であるかを確認するにはどうすればよいですか? また、ログイン後にユーザーを新しいページに誘導するにはどうすればよいですか?
ありがとう!
ビューでは、使用できif request.user.is_authenticated():
、現在のユーザーの変数はrequest.user
テンプレートでは、使用でき{% if user.is_authenticated %}
、現在のユーザーの変数はuser
LOGIN_REDIRECT_URL
ログイン後にユーザーをリダイレクトするには、変数を設定できますsettings.py
.py ドキュメント内
これをすべてのビュー内で使用できます
if not request.user.is_authenticated:
#do something
またはこれはすべてのビューの直前に
@login_required
これにはインポートが必要であり、ログに記録されていないユーザーをデフォルトの URL ではなく特定の URL にリダイレクトするようにfrom django.contrib.auth.decorators import login_required
書き込むこともできます) 。LOGIN_URL = "/loginurl/"
settings.py
accounts/login
.html ドキュメント内
{% if not user.is_authenticated %}
Login is required
{% endif %}
ログイン後のリダイレクト
LOGIN_REDIRECT_URL
次のいずれかで変更できますsettings.py
またはredirect("/indexpage")
ユーザーがログインした後。
この最後のものにはインポートが必要ですfrom django.shortcuts import redirect
ビューの前にログインが必要なデコレータを使用することもできます:
@login_required()
ログインしていないユーザーがビューにアクセスしようとすると、ユーザーをログインページにリダイレクトします
このページで詳細を確認できます: https://docs.djangoproject.com/en/dev/topics/auth/default/#topic-authorization