2012-02-06 11 views
1

ユーザーが匿名であるかどうかを確認するには、どうすればbase.htmlで確認できますか?ユーザがdjangoのbase.htmlで認証されているかどうかを確認するにはどうすればよいですか?

どちらが正しいですか?

{% if request.user.is_authenticated %} 

それとも

{% if user.is_authenticated %} 

は、どのように私はbase.html内の変数request.userを渡すことができますか?あなたはこれらのコンテキストプロセッサを見てとることを確認してください

from django.template import RequestContext 

# in a view 
return render_to_response('base.html', context_instance = RequestContext(request)) 

答えて

1

要求コンテキストを使用してみてくださいhttps://docs.djangoproject.com/en/dev/ref/templates/api/#django-contrib-auth-context-processors-auth

そして、あなたのテンプレートでuserにアクセスすることができるはずが

ますdjangoショートカットrenderを使用して、常に自動的にRequestContentを渡すテンプレートをレンダリングすることができます:

https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#module-django.shortcuts

+0

すべてのテンプレートは 'base.html'を拡張しています。あなたはそこに文脈を渡しませんでした。だから私はこの方法ですべてのビューメソッドを渡す必要がありますか? 'render_to_response( 'base.html'、{'user':request.user、context_instance = RequestContext(request))'を返すと、すべてのビューメソッドで 'request.user'を渡すのは良い考えではありません。 – shibly

+0

ユーザオブジェクトを明示的に渡す必要はありません。これは、RequestContextを渡すことで利用可能になります。リクエストをテンプレートに渡す必要があるビューでこれを行います。 – jdi

+0

'base.html'はプロジェクト全体に共通しています。' base.html'では、ログインしたユーザかどうかを確認する必要があります。これは、ログインまたはログアウトのアンカーリンクを表示することに基づいています。 – shibly

関連する問題