Как отобразить роли и разрешения django в пользовательской панели мониторинга

#python #django #django-rest-framework #django-views #django-templates

Вопрос:

Я пытаюсь иметь роли, группы и разрешения в своей пользовательской панели администратора (не администратор django), чтобы назначать роли, группы и разрешения. Страница администратора django для получения разрешений выглядит так, как показано на рисунке ниже. Я хочу иметь точно такие же разрешения в своем шаблоне.

введите описание изображения здесь

В других фреймворках, таких как laravel, они прекрасно справляются с пакетом Spatie. Есть ли в Django какой-либо аналогичный пакет, или мне придется самому писать каждую отдельную логику. Или, что еще лучше, я могу запросить разрешения и группы администратора Django и отобразить их в своем пользовательском шаблоне панели администратора.

Ответ №1:

Модели разрешений и групп Django могут быть импортированы:

 from django.contrib.auth.models import Permission, Group
 

они являются обычными моделями, как и любые другие, поэтому вы можете запросить их:

 Permission.objects.all()
 

Вы также можете создать другие разрешения:

 from myapp.models import BlogPost
from django.contrib.auth.models import Permission
from django.contrib.contenttypes.models import ContentType

content_type = ContentType.objects.get_for_model(BlogPost)
permission = Permission.objects.create(
    codename='can_publish',
    name='Can Publish Posts',
    content_type=content_type,
)
 

Все, что вам нужно сделать, это создать конечные точки для перечисления, добавления и любых других требований, которые вам могут понадобиться.

Подробнее о документах Django: Программное создание разрешений

Комментарии:

1. Блестящий. Для меня это хорошее начало. Кроме того, можете ли вы добавить какие-либо ресурсы или учебные пособия, которые помогут мне реализовать полномасштабную панель управления ролями и разрешениями? Я немного застрял в том, как это сделать

2. Я не думаю, что вы можете найти много учебных пособий для этого конкретного случая использования. Это просто еще один API, который вам нужно создать. Взгляните на DRF: django-rest-framework.org

3. Большое спасибо за помощь