【问题标题】:Django Advanced Search FunctionallyDjango 高级搜索功能
【发布时间】:2014-03-29 10:35:44
【问题描述】:

我已经在谷歌上搜索了几个小时,但什么也没找到。我对 Django 比较陌生,想知道如何完成以下操作

我希望在页面上实现搜索以过滤查询返回的记录,类似于 eBay 的做法。 (见左下角的链接)

Link to eBay to show desired search functionality

有人可以告诉我正确的方向,或者告诉我需要研究什么来实现这样的功能。

【问题讨论】:

  • 您有一个带有过滤器的表单,您提交表单,所有过滤器都将作为 GET 参数发送到同一页面。您使用参数解析和查询并发回结果。这里有什么问题?

标签: django django-forms django-views advanced-search


【解决方案1】:

使用get_search_results(django 1.6 中的新功能)

class PersonAdmin(admin.ModelAdmin):
    list_display = ('name', 'age')
    search_fields = ('name',)

    def get_search_results(self, request, queryset, search_term):
        queryset, use_distinct = super(PersonAdmin, self).get_search_results(request, queryset, search_term)
        try:
            search_term_as_int = int(search_term)
            queryset |= self.model.objects.filter(age=search_term_as_int)
        except:
            pass
        return queryset, use_distinct

search_term是你输入的,query_set是结果,你需要改变query_set

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 2015-04-06
    • 1970-01-01
    • 2012-10-18
    • 2019-04-21
    相关资源
    最近更新 更多