@Igorello74

Как обновить название модели в разрешении (permission) из auth в Django?

Добрый день!
Недавно, изучая список разрешений в админке, я обнаружил, что названия моделей в разрешениях — устаревшие.
5c9a84ac8246e794578123.png
Здесь вместо слова Предмет находится слово Товар, а вместо слова Квант — quant


Я, недолго думаю, решил посмотреть базу через DB Browser for SQLite (браузер для SQLite) и обнаружил, что названия моделей в таблице разрешений (auth_permission) хранятся напрямую в базе, а не берутся из кода.
5c9a8b642bb7e276905175.png

Из всего выше сказанного я вынес, что названия моделей в разрешениях сгенерились ещё на первой миграции.

Вопрос: каким образом можно обновить названия моделей в разрешениях до нынешнего состояния?

Заранее спасибо.
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
@Igorello74 Автор вопроса
В общем, решил задачу следующим образом:
  1. Удалить все разрешения вручную:
    • либо через shell Django (python3 manage.py shell)
      from django.contrib.auth.models import Permission
      Permission.objects.all().delete()

    • либо через средство базы данных (типа DB Browser for SQLite) найти таблицу с именем auth_permission (у вас возможно другое) и удалить все записи к чертям.

  2. Сделать и применить миграцию:
    python3 manage.py makemigrations
    python3 manage.py migrate

Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы