Как создать миграцию пользователей и групп в Django?

#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