#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. Большое спасибо за помощь