В настоящее время я поддерживаю устаревшую систему, пока запускается новая система.Недавно я заметил, что получаю тайм-аут при попытке удалить определенные объекты из конкретной модели.Я отследил это, чтобы быть связанным со следующим вопросом, на который есть принятый ответ: Администратор Django зависает (до ошибки тайм-аута) для конкретной модели при попытке редактировать / создать
У меня проблема в том, что связанные объекты не связаны напрямую с моей рассматриваемой моделью.
Например, у меня есть следующие модели (обычно названные так, чтобы оставаться неопределенными из-за IP в моей компании):
ModelA
- это модель, с которой я вижу проблему при удалении с сайта администратора Django ModelB
, который содержит поле ForeignKey для ModelA
ModelC
, которое содержит поле ForeignKey для ModelB
ModelD
, которое содержит поле ForeignKey для ModelC
ModelE
, которое содержит поле ForeignKey для ModelD
Подробности модели:
ModelE
может содержать десятки / сотни / тысячи записей для любой записи ModelC
.Дополнительно ModelC
может содержать десятки / сотни / тысячи записей для любой записи ModelB
В настоящее время, когда я пытаюсь удалить ModelA
Django пытается сгенерировать все связанные объекты полностью вниздо ModelE
, что вызывает таймаут в некоторых случаях с большим количеством связанных ModelC
и ModelE
.
Есть ли способ избежать этого, переопределив пользовательский шаблон, такой как delete_confirmation_template, или любым другим способом?В идеале я хотел бы показать резюме, но я не уверен, что это будет возможно с характером этой проблемы.
Несколько деталей для контекста:
- Я чувствую, что это может быть связано с плохой общей структурой в нашей схеме БД, но, как я упоминал ранее, это устаревшая система.
- Мне не нужно немедленное исправление для этого, поскольку я фактически никогда не буду удалять записи для этой модели, за исключением моего текущего сценария / задачи очистки дублированных записей (ошибка пользователя не контролируется корректно формами; формы теперь проверяютсядля этого), что делается через скрипт миграции.Я просто заметил это при попытке очистить вещи и использовать эту промежуточную страницу в качестве проверки работоспособности при тестировании указанного скрипта миграции
Скриншот тайм-аута