【问题标题】:Exact field search in the Django adminDjango 管理中的精确字段搜索
【发布时间】:2017-12-30 04:08:53
【问题描述】:

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

?fieldname__exact=foobar

我似乎不能做的是让侧边栏显示一个小表单,我可以在其中输入此值。我知道我可以将fieldname 添加到list_filter,但这并不能很好地扩展到数十个唯一值之外。我研究了一下 django-advanced-filters,但它似乎与 Django 1.11 不兼容。

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

【问题讨论】:

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


    【解决方案1】:

    有点晚了,但我希望它仍然可以帮助某人

    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 中找到信息

    【讨论】:

    • 有趣的功能,但不幸的是,它不允许专门为一个字段提供单独的搜索框,是吗?
    • 不,每个字段都是相同的搜索字段。恐怕只有 HTML/Javascript 才能使用单独的字段。
    • 也记录在Django docs
    • 正则表达式搜索在 django admin 中不可用,仅在 DRF 中可用。此外,完全匹配不区分大小写。
    • @Pieter 你有没有找到专门针对一个字段的单独搜索框的解决方案?
    猜你喜欢
    • 1970-01-01
    • 2019-01-26
    • 1970-01-01
    • 2014-10-15
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多