Дополнительные таблицы в списке разрешений группы администраторов Django
Вчера я выполнил несколько фальшивых миграций, а также переименовал несколько таблиц моей базы данных непосредственно вчера из-за ограничений внешнего ключа и других подобных ошибок, которые Django выдавал мне после переименования некоторых моделей.
Я знаю, что это не стандартная процедура, и она чревата ошибками. Однако для меня это все решило, без необходимости стирать базу данных, как я почти решил сделать.
В общем, как я уже сказал, все работает отлично, за исключением списка, показанного в "доступных разрешениях" в управлении группами. Следующие (и другие) таблицы отсутствуют в базе данных, и даже не имеют префикса с именем приложения:
Откуда они берутся? Как я могу от них избавиться?
Вы можете использовать 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]удаляет устаревшие типы содержимого (из удаленных моделей) в вашей базе данных. Любые объекты, зависящие от удаленных типов содержимого, также будут удалены.