#python #django #django-rest-framework #rbac
#python #django #django-rest-framework #rbac
Вопрос:
Итак, у меня есть API, встроенный в Django с помощью Django Rest Framework, и теперь я хочу добавить к нему управление доступом на основе ролей. Для этого я нашел расширение django-rest-framework-roles. Я установил его, но я не очень знаком с обычной системой аутентификации в Django. В нем говорится, что мне нужно определить группы в настройках как
ROLE_GROUPS = [group.name.lower() for group in Group.objects.all()]
Итак, мне нужна Group
модель и, конечно же, User
модель. Насколько я понимаю, это стандартные модели. Однако в моей базе данных нет таблиц для них. Итак, мне нужна миграция для этого, но я не уверен, как я могу это сделать.
Я думаю, это должно быть действительно просто, но даже на соответствующих страницах документации я не вижу упоминания о том, как добавить эти модели в мою установку Django.
Кто-нибудь может просветить меня по этому поводу?
Ответ №1:
В вашем settings.py
у вас есть что-то вроде этого:
INSTALLED_APPS = [
...
"django.contrib.auth",
...
]
В этом приложении есть модели группы и пользователя (включая приложение django), поэтому первое, что вы сделаете после настройки базы данных, — это миграция с помощью этой команды ./manage.py migrate
, после миграции вы можете использовать их импорт следующим образом: from django.contrib.auth.models import User, Group
Ответ №2:
Стандартная User
модель в django имеет имя таблицы auth_user
.
Стандартная Group
модель имеет табличное имя auth_group
.
Сами таблицы базы данных создаются после того, как вы запустили свой первый сценарий миграции после запуска проекта.
Это делается из командной строки с помощью:
$ python manage.py migrate