【问题标题】:How To perform search on a specific field rather than all fields in search_fields如何对特定字段而不是 search_fields 中的所有字段执行搜索
【发布时间】:2015-07-25 19:29:45
【问题描述】:

在 Django 中,如果我想搜索某些内容,我会在 search_fields 中指定字段。如果我想在一个特定字段上执行搜索怎么办?我想实现类似下拉菜单的功能来选择要执行搜索的字段。(例如,所有、姓氏、名字、电话号码作为下拉选项)

【问题讨论】:

标签: django django-admin


【解决方案1】:

我没有完全理解你的意思,但是。

假设当用户搜索时,您将搜索参数和搜索字段名称发送到您的视图。 _search_term 和 _search_field

if _search_term:
    result = model_cls.objects.all()
    args = Q()
    Q1 = Q(**{'{0}__icontains'.format(_search_field):_search_term})
    args = args | Q1
    result = result.filter(*(args,) )

看看我是如何在事先不知道字段名称的情况下创建 Q 对象的。 结果将是您过滤的行,我使用了 icontains,您可以更改它,甚至可以让用户更改它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-25
    • 2021-01-24
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    相关资源
    最近更新 更多