gpt4 book ai didi

python - 始终像对待 Django Admin 中的 raw_id_fields 一样对待 ForeignKey 字段

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:35 26 4
gpt4 key购买 nike

这种情况在我的项目中经常发生:

  • 有人添加了一个模型 Foo,它有几个 ForeignKey 字段,其中一个指向模型 Bar
  • 为该模型添加了一个管理员(并且工作正常)
  • 代码已部署
  • 在生产服务器上,Bar 有数百万个实例
  • 有人访问了 Foo 的管理页面; Django 尝试一次检索所有 Bar(将它们显示在组合框中)并且服务器重载
  • 稍后通过编辑 Foo 的管理员并将 bar 添加到 raw_id_fields 来解决问题。

我想防止这种情况在未来发生,最好通过某种方式声明(一劳永逸)Bar 有很多行并且应该总是 被视为引用它的字段在所有管理页面的 raw_id_fields 中列出。这有可能吗?

最佳答案

这是一个很好的观点。这是一个关键问题,可以关闭数据库甚至网络服务器。

考虑到这一点,我相信默认方法必须是 raw_id_fields 东西。如果您知道自己在做什么,就会改变这种行为。

不幸的是,大多数管理界面库的作者都不同意这个想法。不仅适用于 Python-Django,还适用于其他社区,例如 Ruby-Rails。

5 年前我厌倦了同样的问题,然后我开发了 django-smart-autoregister ,这样做并使用另一个好的模式自动配置。即使在今天,我也面临这个问题,所以我想值得一看。

ps:该库最初是使用模块化方法实现的,尽管您只是调用一些函数来根据模型字段为您配置raw_id_fields

关于python - 始终像对待 Django Admin 中的 raw_id_fields 一样对待 ForeignKey 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24404362/

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