Djangoのテンプレート内でAuthアプリケーションの権限チェックを使用できますか? (特権ユーザーのテンプレートの最後に簡単なフォームを表示したい)
そしてもっと重要なことは、私はそれを全然やるべきなのか、それとも「Djangoのやり方」なのか?
テンプレートのアクセス許可を確認する場合は、次のコードで十分です。
{% if perms.app_label.can_do_something %}
<form here>
{% endif %}
モデルは、ユーザーがフォームを表示するためのアクセス許可が必要なモデルを指します。
その他の例については、 https://docs.djangoproject.com/en/stable/topics/auth/default/#permissions を参照してください。
現在ログインしているユーザーの権限は、テンプレート変数
{{ perms }}
(これには、次のコンテキストプロセッサを有効にする必要があります:Django.contrib.auth.context_processors.auth
)
特定のオブジェクトなどのパーマをより細かくチェックする必要がある場合は、この拡張機能を確認してください。 http://Django-authority.readthedocs.org/en/latest/check_templates/
テスト済みDjango 2.0 +
ログインしたユーザーが持っているすべての権限をテンプレート(.html)で表示するには、次のように印刷します。
{{ perms.app_name }}
または
{{ perms }}
ユーザーに権限があるかどうかを確認するには、次を使用します。
{% if perms.app_name.change_model_name_lower_cased %}
例:
{% if perms.Utilization.change_invoice %}
ここ:使用率は私のアプリ名です。請求書はモデル名です。
一般に、4種類のアクセス許可があることに注意してください。
また、ユーザーが属するグループのためにユーザーが持っているすべての権限を表示したい場合は、Django Shell ...
user = User.objects.get(username='somename')
user.get_group_permissions()
ここにリストされているすべての許可は、彼が属するグループによるものです。