在我的项目中,这种情况发生得太频繁了:
- 有人添加了一个名为
Foo
的模型,其中包含多个ForeignKey
字段,其中一个字段引用了模型Bar
- 管理员为该模型添加并工作正常
- 将代码部署到生产服务器上
- 在生产服务器上,
Bar
有数百万个实例 - 有人访问
Foo
的管理页面; Django尝试一次性检索所有Bar
(以在组合框中显示它们),服务器负载过高 - 稍后通过编辑
Foo
管理程序并将bar
添加到raw_id_fields
来解决问题。
我想防止将来发生这种情况,最好是通过某种方式声明(一劳永逸)Bar
有很多行,并且应始终像列出对其引用的字段一样在所有管理页面中进行处理。是否可能做到这一点?