Django管理员中的精确字段搜索

时间:2017-07-24 14:13:09

标签: python django django-models django-admin django-modeladmin

我正在尝试为特定模型配置Django管理绑定,以便我可以快速过滤特定字段的确切值。我知道我可以手动篡改GET参数来执行此操作:

?fieldname__exact=foobar

我似乎无法做到,是让侧边栏显示一个小表单,我可以在其中输入此值。我知道我可以将fieldname添加到list_filter,但这不会超出数十个唯一值。我稍微研究了django-advanced-filters,但它似乎与Django 1.11不兼容。

如何在Django管理员中实现对特定字段的精确搜索?

1 个答案:

答案 0 :(得分:15)

有点晚了,但我希望它仍能帮助某人

搜索字段的可能配置列在http://www.django-rest-framework.org/api-guide/filtering/#searchfilter

'^' Starts-with search.
'=' Exact matches. (case-insensitive)
'@' Full-text search. (Currently only supported Django's MySQL backend.)
'$' Regex search. (Only with Django Rest Framework)

在您的情况下,只需添加

search_fields = ['=fieldname', 'otherfieldname']

给你的管理员。

更新: 从Django 2.1开始,也可以在搜索字段中添加查找(例如'fieldname__exact')。您可以在Django Docs以及可能的Lookups

中找到信息