Django Guardian
django-guardian расширяет систему разрешений Django, добавляя поддержку object-level permissions.
Установка
Настройка
Назначение разрешений
1from guardian.shortcuts import assign_perm, get_perms
2
3# Назначить разрешение пользователю на объект
4assign_perm('change_article', user, article)
5
6# Проверить разрешения
7perms = get_perms(user, article)
8
9# В представлениях
10from guardian.decorators import permission_required_or_403
11
12@permission_required_or_403('change_article', (Article, 'id', 'article_id'))
13def edit_article(request, article_id):
14 pass
Проверка разрешений в шаблонах
Групповые разрешения
FAQ
Q: Как работает с группами?
A: Guardian поддерживает групповые разрешения аналогично пользовательским.
Q: Можно ли использовать с DRF?
A: Да, создай кастомный permission класс для DRF.