0

私は Django が初めてなので、ご容赦ください。ユーザーが を使用してアクセスするためにログインする必要があるページを作成しようとしていますが、@login_required何もしていないようです。(エラーなし、リダイレクトなし、何もありません。)

この問題に関連して私が持っているものは次のとおりです。

プロジェクト設定.py

LOGIN_URL = '/login'

アプリのviews.py

from django.contrib.auth.decorators import login_required

@login_required
def index(request):
    context = RequestContext(request)
    return render_to_response('evaluation/index.html')

プロジェクト urls.py

url(r'^login/$', 'django.contrib.auth.views.login')

これも関係あるかわかりませんが、ログインを要求したいこのページで、ログインするとユーザー名が表示されるように設定していますが、その後も表示されません。ログインに成功したように見えますが、ログイン ページにリダイレクトされます。

{% if user.is_authenticated %}
<h1>Hello {{ user.username }}</h1>
{% else %}
<h1>Hello world</h1>
{% endif %}

django.contrib.auth のドキュメントを見ましたが、役に立ちませんでした。nextこの問題と何か関係がありますか? グーグルで調べても、それが一体何なのか、何をしているのか、まだわかりません。(これに関連する優れたリソースについて提案がある場合は、それもいただければ幸いです。)

4

1 に答える 1

1

のテンプレートにコンテキストを渡していないため、変数indexについて何も認識していません。userやったほうがいい:

return render_to_response('evaluation/index.html', context)

contextまたはさらに良いことに、変数を完全に削除して、

return render(request, 'evaluation/index.html')

(render_to_response とは異なり、render はデフォルトで RequestContext を使用するため)。

于 2014-07-09T17:19:01.803 に答える