我目前正在维护一个遗留系统,而一个新系统正在开发中。我最近注意到,当我试图从特定模型中删除某些对象时,会超时。我已经追踪到与以下问题相关的问题,这些问题有一个公认的答案:
Django admin hangs (until timeout error) for a specific model when trying to edit/create
我遇到的问题是,相关的对象与我的模型没有直接的关系。
例如,我有以下模型(通常命名为由于我公司的IP而保持模糊):
-
ModelA
从django管理网站删除时,我看到的问题是哪种模式?
-
ModelB
其中包含一个foreignkey字段
模特儿
-
ModelC
其中包含一个foreignkey字段
模型B
-
ModelD
其中包含一个foreignkey字段
C型
-
ModelE
其中包含一个foreignkey字段
模特儿
模型详细信息:
-
模特儿
可以包含数十个/数百个/数千个条目
-
模特儿
. 另外
模特儿
可以包含数十个/数百个/数千个条目
模型B
当前尝试删除时
模特儿
Django尝试生成所有关联的对象,一直到
模型E
在某些情况下,它会导致超时,并且关联的数量很多
模特儿
和
模特儿
.
是否有一种方法可以通过覆盖自定义模板(如删除确认模板)或任何其他方法来避免这种情况?理想情况下,我仍然想显示摘要,但我不确定这是否可能与此问题的性质。
上下文的一些细节:
-
我觉得这可能是由于我们的数据库模式中的整体结构不好,但正如我之前提到的,这是一个遗留系统。
-
我不需要立即解决这个问题,因为我实际上永远不会删除这个模型的条目,除了我当前清理重复条目的场景/任务(用户错误没有被表单正确控制;表单现在检查这个),这是通过迁移脚本完成的。我只是在尝试清理东西时注意到了这一点,并在测试所说的迁移脚本时利用这个中间页作为健全性检查。
Timeout screenshot