gpt4 book ai didi

django - 通过 Django admin 删除对象时,是否可以禁用相关对象的生成?

转载 作者:行者123 更新时间:2023-12-02 02:48:15 25 4
gpt4 key购买 nike

我目前正在维护一个遗留系统,同时一个新系统被提出。我最近注意到尝试从特定模型中删除某些对象时出现超时。我已经追踪到这与以下问题有关,该问题的答案已被接受:Django admin hangs (until timeout error) for a specific model when trying to edit/create

我遇到的问题是相关的对象与我的模型没有直接关系。

例如,我有以下模型(由于我公司的知识产权,一般命名为保持模糊):

  • ModelA这是我在从 Django 管理站点删除时看到问题的模型
  • ModelB其中包含一个外键字段到 ModelA
  • ModelC其中包含一个外键字段到 ModelB
  • ModelD其中包含一个外键字段到 ModelC
  • ModelE其中包含一个外键字段到 ModelD

  • 型号详情:
  • ModelE可以包含
  • 的任何条目的数十/数百/数千个条目
  • ModelC .另外 ModelC可以包含 ModelB 的任何条目的数十/数百/数千个条目

  • 目前当我尝试删除 ModelA Django 尝试生成所有关联的对象,一直到 ModelE这在某些情况下会导致超时,关联数量较多 ModelCModelE .

    有没有办法通过覆盖诸如 delete_confirmation_template 之类的自定义模板或通过任何其他方法来避免这种情况?理想情况下,我仍希望显示摘要,但我不确定此问题的性质是否可行。

    上下文的一些细节:
  • 我觉得这可能是由于我们的 DB Schema 整体结构不佳,但正如我之前提到的,这是一个 Legacy 系统。
  • 我不需要立即解决这个问题,因为我实际上永远不会删除这个模型的条目,除了我当前的清理重复条目的场景/任务(用户错误没有被表单正确控制;表单现在检查这个)通过迁移脚本完成。我只是在尝试清理内容并在测试所述迁移脚本时利用此中间页面作为健全性检查时注意到这一点

  • Timeout screenshot

    最佳答案

    从评论中的讨论中,我得出以下结论:

  • on_delete被设置为 CASCADE for 模型不正确,导致尝试删除模型时检索相关对象的时间非常长
  • 由于我不想在其他特定模型与它们有关联时允许删除这些对象,因此我分析并适当设置了 on_deletePROTECT如果适用
  • 现在,当我尝试删除一个对象时,由于 protected 相关项目,它不允许我删除该对象。它还解决了我之前观察到的超时问题

  • 这允许我仍然通过 Django 管理站点从这个模型中删除对象,如果它们没有相关的 protected 对象,这最终是我想要的功能

    关于django - 通过 Django admin 删除对象时,是否可以禁用相关对象的生成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53394683/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com