Установка параметра, который могут просматривать только пользователи определенной группы
Я совсем новичок в django и создаю проект, используя django и python преимущественно.
У меня есть две группы пользователей в админпанели djangos, созданные и определенные там с пользователями, добавленными через эту админпанель; Diving_Officers и Club_Members
На моей веб-странице есть опция, которую я хочу сделать видимой или даже кликабельной только для пользователей одной группы, группы Diving_Officers. Я не могу найти никакой конкретной информации о том, как вызвать группу, существующую в django admin, и назначить ей разрешения, или как ограничить просмотр только ею.
**вкратце, как добавить набор прав доступа к группе, т.е. люди в этой группе могут просматривать только эту страницу
В представлении можно использовать декоратор @user_passes_test() (более подробную информацию можно найти здесь https://docs.djangoproject.com/en/4.1/topics/auth/default)
Чтобы сделать опцию видимой только для пользователя из этой группы, вместо этого вы можете использовать фильтр шаблонов, создайте папку "templatetags" в вашем приложении и добавьте это в "has_group.py" в этой папке:
from django import template
register = template.Library()
@register.filter
def has_group(user, group_name):
return user.groups.filter(name=group_name).exists()
тогда, после загрузки шаблона с помощью "load has_group" вы можете использовать user|has_group: "mygroup" в качестве условия