Как правильно работать с группами и разрешениями?
Для своего проекта хотел создать группу Модераторов, которые могут изменять и удалять записи. Модель для группы такая:
class Group(models.Model):
name = models.CharField(max_length=150)
permissions = models.ManyToManyField(Permission, verbose_name='Права', blank=True, related_name='perms')
Во вьюшке прописал такой код:
def create_moderator_group():
group, _ = Group.objects.get_or_create(name='Moderators')
event_permissions = [
Permission.objects.get(name='Can add events'),
Permission.objects.get(name='Can change events'),
Permission.objects.get(name='Can delete events'),
Permission.objects.get(name='Can view events'),
]
group.permissions.add(*event_permissions)
create_moderator_group()
def add_user_to_groups():
user_ids = [1, 8]
group = Group.objects.get(name='Moderators')
current_group_users = group.user_set.all()
users_to_add = [user for user in User.objects.filter(pk__in=user_ids) if user not in current_group_users]
group.user_set.add(*users_to_add)
group_user_ids = [user.id for user in current_group_users]
users_to_remove_ids = set(group_user_ids) - set(user_ids)
if users_to_remove_ids:
group.user_set.remove(*list(users_to_remove_ids))
add_user_to_groups()
Он создал мне группу Moderators с правами + автоматически добавляет или убирает пользователей ы группу. По идее теперь пользователь должен наследовать права от группы, но, например, в темплейте при проверке {% if perms.events.delete_events and perms.events.change_events %} ... {% endif %} нужный контент не отображается, то есть проверка на права не пройдена. Не могу понять в чем проблема