如何修改在Django管理页面中呈现ForeignKey字段的方式,以避免浏览器崩溃?

时间:2010-07-20 20:52:14

标签: django firefox django-admin crash

我有一个Customer模型,其中包含Contact模型的ForeignKey。

我的数据库中有超过100,000个联系人,当我为特定客户加载管理页面时,联系人的下拉菜单中会填充数据库中的所有联系人。最近,由于它的剪切长度,导致我的Firefox在管理页面加载时崩溃。

有没有办法:

  1. 用整数替换字段 字段我可以手动修改到 必要时联系ID
  2. 用一些替换下拉菜单 替代输入法不会 使浏览器崩溃
  3. 删除此输入 来自客户管理页面 共
  4. 谢谢!

2 个答案:

答案 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给出了惊讶(但并不令人惊讶)......