11

このページに従って、django 登録サイトをセットアップしました。これは非常に優れており、登録と認証は適切にラップされています。

しかし、ウェブページを表示する前に、ユーザーがログインしているかどうか、このユーザーが誰であるかを確認するにはどうすればよいですか? また、ログイン後にユーザーを新しいページに誘導するにはどうすればよいですか?

ありがとう!

4

3 に答える 3

14

ビューでは、使用できif request.user.is_authenticated():、現在のユーザーの変数はrequest.user

テンプレートでは、使用でき{% if user.is_authenticated %}、現在のユーザーの変数はuser

LOGIN_REDIRECT_URLログイン後にユーザーをリダイレクトするには、変数を設定できますsettings.py

于 2013-01-08T18:09:58.943 に答える
7

.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.pyaccounts/login

.html ドキュメント内

{% if not user.is_authenticated %}
Login is required
{% endif %}

ログイン後のリダイレクト

LOGIN_REDIRECT_URL次のいずれかで変更できますsettings.py

またはredirect("/indexpage")ユーザーがログインした後。
この最後のものにはインポートが必要ですfrom django.shortcuts import redirect

于 2013-07-25T12:30:26.693 に答える
4

ビューの前にログインが必要なデコレータを使用することもできます:

@login_required()

ログインしていないユーザーがビューにアクセスしようとすると、ユーザーをログインページにリダイレクトします

このページで詳細を確認できます: https://docs.djangoproject.com/en/dev/topics/auth/default/#topic-authorization

于 2013-01-29T10:17:52.733 に答える