用于list_filters的Django raw_id_field样式小部件

时间:2012-06-25 22:18:21

标签: python django django-admin

在Django管理员更改列表页面上呈现list_filter字段时是否有raw_id_field样式窗口小部件?

当我向Django modeladmin list_filter添加基于外键的字段时,Django将相关表格中的每一行渲染到选择框中的右侧面板。如果该表很大(例如,如果它指向User表),这会大大减慢加载时间,因为Django可以渲染数千行。即使在完成渲染之后,也很难在巨大的下拉列表中找到您的选择。

1 个答案:

答案 0 :(得分:1)

没有,但在Django 1.4中,list_filter系统已经扩展,因此您可以编写自己的自定义过滤器。见

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter

例如,限制显示的用户数量是微不足道的。制作raw_id_fields样式的过滤器会稍微复杂一点 - 您只需要覆盖过滤器模板,而不是显示链接列表,显示表单和提交按钮。