2016-04-16 7 views
1

私は、ログに記録されているユーザーだけがページにアクセスできるようにしようとしていますが、 認証されたユーザーのみがdjangoの特定のページにアクセスすることを許可します

この

はいつも私がページを見てみましょう私も

{% if user.is_authenticated %} 
    <h1>Course Page!</h1> 
{% else %} 
    <a href="/">login</a> 
{% endif %} 

私はviews.pyファイルにしようとした最初の方法を実行して、アクセスを制限しようとしてい

@login_required 
def course(request): 
    data = Students.objects.all() 
    context = {'data', data} 
    if not request.user.is_authenticated(): 
     return HttpResponseRedirect('/') 
    else: 
     return render_to_response('login/course.html', context) 

私のviews.pyです2番目の方法は常にログインリンクのみを表示します。それはおそらく小さなものですが、私はそれを動作させるように見えません。誰かが正しい方向に私を指すことができるだろうか?あなたのビューで

+0

「view.pyファイルで試した最初の方法は、いつも私にそのページを見せてもらう」と言うとき、それは 'login/course.html'をレンダリングすることを意味しますか? –

+0

はい、申し訳ありませんが、私はそれについてはっきりしていませんでした –

答えて

1

これは十分なはずです。匿名ユーザーがまだそのビュー機能にアクセスできる場合、ユーザーは認証されている可能性があります。

@login_required(login_url='/') 
def course(request): 
    data = Students.objects.all() 
    return render(request, 'login/course.html', {'data': data}) 

あなたは認証されていませんか? localhostのクッキーを削除し、再度ビューを開いてみてください。

0

、のようなもので、応答をユーザーに渡してみてください。

return render_to_response('login/course.html', {'context': context, 'user': request.user}) 
関連する問題