Порядок удаления в панели администратора Django приводит к сбою ограничения FOREIGN KEY

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

Когда я пытаюсь удалить пользователя из панели администратора, я получаю экран ошибки, говорящий IntegrityError at /admin/auth/user/ FOREIGN KEY constraint failed, но ни в одном месте на всей странице не упоминается ни модель, ни столбец, ни что-либо, что могло бы помочь мне сузить проблему. Я предполагаю, что это связано с моей моделью, которая имеет models.OneToOneField(AuthUser, on_delete = models.CASCADE), хотя я думаю, что on_delete должен удалить его, он, кажется, в конечном итоге болтается или что-то, потому что если я сначала удалю запись в этой таблице, а затем удалю пользователя, на которого она ссылается, они будут удалены правильно без проблем.

Я новичок в Django, поэтому почти наверняка что-то не понимаю, любая помощь:

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

все очень признательны.

Вот определение моей модели. enter image description here

Где я удаляю пользователя, чтобы вызвать ошибку. enter image description here

Ошибка, которую он мне выдает. enter image description here

Где я должен удалить запись перед удалением пользователя, чтобы избежать ошибок. enter image description here

Ну, я сделал несколько последних случайных тестов, прежде чем бросить эту проблему и игнорировать ее, и я столкнулся с тем, что замена AuthUser на User все исправляет.

Я понятия не имею, где существует User, потому что это не существующая таблица в моей базе данных, как AuthUser, но по какой-то причине с этим все работает просто отлично, так что никаких жалоб от меня.

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