Дополнительные таблицы в списке разрешений группы администраторов Django

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

Я знаю, что это не стандартная процедура, и она чревата ошибками. Однако для меня это все решило, без необходимости стирать базу данных, как я почти решил сделать.

В общем, как я уже сказал, все работает отлично, за исключением списка, показанного в "доступных разрешениях" в управлении группами. Следующие (и другие) таблицы отсутствуют в базе данных, и даже не имеют префикса с именем приложения:

enter image description here

Откуда они берутся? Как я могу от них избавиться?

Вы можете использовать django shell, чтобы избавиться от старых разрешений следующим образом :

from django.contrib.auth.models import Permission

# Assume that you have all name of the old permissions  to delete in a list
permission_old = ['permission_name_1', 'permission_name_2', ...]

for perm in Permission.objects.all():
    if str(perm) in permission_old:
        print(perm)
        perm.delete()

илипрочитайте этот пост

Благодаря ответу @Rvector я был направлен на этот пост, где этот ответ дал мне знать о команде remove_stale_contenttypes, которая

[d]удаляет устаревшие типы содержимого (из удаленных моделей) в вашей базе данных. Любые объекты, зависящие от удаленных типов содержимого, также будут удалены.

Вернуться на верх