У меня есть проект django, в котором сейчас размещено несколько сайтов, и теперь мне нужно разделить их на разные проекты с разными базами данных.
Поэтому я клонировал проект и подумал, что удаление записей в модели сайта приведет к каскадному удалению всех данных, связанных с сайтами, которые я удаляю, и оставит те, которые относятся к записи сайта, которую я храню.
У меня есть следующий код в команде управления для удаления сайтов:
Site.objects.filter(~Q(domain=options.get("domain"))).delete()
Но я получаю такую ошибку:
django.db.utils.IntegrityError: update or delete on table "django_site" violates foreign key constraint "core_staticpage_site_id_fkey" on table "core_staticpage"
DETAIL: Key (id)=(4) is still referenced from table "core_staticpage".
Эта ошибка относится к ForeignKey и ManyToManyField, версия Django — 1.4.3.
core.StaticPageпринадлежит вам, попробуйте установить параметрon_deleteв ForeignKey на Sites, все, кромеmodels.PROTECT, должно работать, но это зависит от того, что вы хотите, чтобы произошло при удалении сайта. - person Lorenzo Peña   schedule 03.07.2015