Установка параметра, который могут просматривать только пользователи определенной группы

Я совсем новичок в 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" в качестве условия

Вернуться на верх