我有一个Customer模型,其中包含Contact模型的ForeignKey。
我的数据库中有超过100,000个联系人,当我为特定客户加载管理页面时,联系人的下拉菜单中会填充数据库中的所有联系人。最近,由于它的剪切长度,导致我的Firefox在管理页面加载时崩溃。
有没有办法:
谢谢!
答案 0 :(得分:6)
您可以
最简单的解决方案是从管理员中排除该字段。管理员课程中只需say so。
您可以将字段更改为文本输入,并将其显示为主键而不是项目本身,方法是将其包含在管理类的raw_id_fields
中。
您还可以使用“自动完成文本”字段输入替换标准下拉窗口小部件。使用implemented widget或其他等效项。 - 这可能是你最喜欢的解决方案。
您还可以覆盖formfield_for_foreignkey
模型上的Admin
方法,以自定义在外键下拉列表中显示的查询集。您可能希望结帐my implementation仅显示当前用户(或子域名)添加的实体。
答案 1 :(得分:1)
在admin.py条目中指定contact
中的raw_id_fields
字段,因为相关模型会将您排除在外。文档为here。
PS。在您的数据库服务器坦克之前FF给出了惊讶(但并不令人惊讶)......