ユーザーが特定のグループに属しているか管理者である場合にHTMLの特定の部分が表示されるようにしようとしています。特定のグループと管理者がDjangoのHTMLの一部を表示できるようにします。
{% for group in user.groups.all %}
{% if group.name == 'example' %}
Insert html here
{% endif %}
{% endfor %}
問題は、管理者があまりにもそれを見ることができるようにしようとしています
base.html:唯一の特定のグループはそれを見ることができるように私はそれを作るための方法を見つけることができました。 request.user.is_staffのようなものをifステートメントに追加しようとしたとき、コードは基本的に無視しました。管理者がグループに関係なくこのhtmlを見ることを許可していますか?また、これはbase.htmlなので、Pythonモジュールでこれをしようとすると問題になります。テンプレートで
from django import template
from django.contrib.auth.models import Group
register = template.Library()
@register.filter(name='has_group')
def has_group(user, group_name):
group = Group.objects.get(name=group_name)
return group in user.groups.all()
:あなたはカスタムテンプレートタグ必要
ステータス管理者またはスーパーユーザは、このユーザーが明示的にグループに追加されることなく、すべてのものへのアクセスを持っていることを意味します。 – Hisagr
これは、条件付きで管理者がHTMLに関係なく表示することを許可していないという事実は変わりません。 –
これは、権限ではなくグループ名を使用しているためです。特定の権限を設定したら、{%if user.is_authenticated%}を確認する必要があります。詳細はこちらhttps://docs.djangoproject.com/en/1.11/topics/auth/default/#all-authentication-views – Hisagr