2012-02-27 5 views
51

Djangoのテンプレート内でAuthアプリケーションの権限チェックを使用できますか? (私は特権ユーザーのためのテンプレートの最後にシンプルなフォームを表示したい)Djangoのテンプレート内のアクセス許可を確認してください

さらに重要なことに、私はそれをまったくやっていないのでしょうか、これは「Django way」ではありませんか?

+0

私のような人のために、これを後で遭遇する人には、Django 1.5のリンクはわずかに変更されましたまあ。この情報はこのURLのドキュメントにあります:https://docs.djangoproject.com/en/1.5/topics/auth/default/#permissions元の回答の何も変わっていませんが、これは単なる新しいURLです:) – Xudonax

答えて

114

あなたはテンプレートの権限をチェックするために探している場合は、次のコードは十分であろう:

モデルは、ユーザーがためのフォームを参照する権限を必要とするモデルを指し
{% if perms.app_label.can_do_something %} 
<form here> 
{% endif %} 

さらに詳しい例はhttps://docs.djangoproject.com/en/stable/topics/auth/default/#permissionsを参照してください。あなたがチェックでより多くの細かさが必要な場合は

+2

スーパーユーザとしてログインしている場合、パーミッション名のスペルを間違えたとしても、 'perms.app_label.foobar'は常にtrueになります。 – Flimm

1

現在ログインしているユーザーの権限は、(django.contrib.auth.context_processors.authこれを有効にするには、以下のコンテキストプロセッサが必要です){{ perms }}

変数テンプレートに格納されていますperms(例えば、特定のオブジェクトの場合)、この拡張子をチェックアウトしてください:http://django-authority.readthedocs.org/en/latest/check_templates/

関連する問題