0

を使いたい

@login_required 

と呼ばれるビューのデコレータ

allUsers_page

、URLに移動するときに使用されます

r'^users/allUsers$'

私のsettings.pyには、

LOGIN_URL='/login'

ユーザーが

allUser_page

ビュー(彼がURLに行くとき

users/allUsers

、ユーザーが自分のアカウントにサインインしていない場合、ログイン ページにリダイレクトされます。さて、ログインページで、ユーザーがログインページに直接アクセスしたのか、それともログインページにリダイレクトされたのかを確認する方法はありますか?

@login_required

デコレータ?基本的に、ログインページを次のようにしたい

{% if the user was redirected to this page by @login_required %}
    <p>Hi, you must log in in order to view the page you were trying to view.</p>
{% else %}
    <p>Welcome! Please sign in.</p>
<!-- Here is where the log in form is -->

注: 私は一般的なログイン ビューを使用しています。

4

1 に答える 1

4

ユーザー user が別のページからリダイレクトされた場合、django はnextクエリ文字列パラメーターを提供するため、ユーザーはサインイン後にリダイレクトされます。

これを settings.py に追加します

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.static",
    "django.core.context_processors.tz",
    "django.contrib.messages.context_processors.messages",
    "django.core.context_processors.request",
)

次に、テンプレートで、このパラメーターが存在するかどうかを確認します。

{% if 'next' in request.GET %}

ただし、テストされていません。

認証ドキュメントを参照してください

于 2014-01-13T01:22:42.713 に答える