我在我的网站中使用“ search_fields”和“ list_filter”。 当我执行搜索时,URL会变成
①/ur/corelog/?q=test
搜索功能运行良好,当我使用list_filter时,URL变得像
②/url/corelog/?scoreRange=0+-+0.9
这是预期的。我担心的是,如果我进行搜索(URL变为①),然后使用过滤器,则该URL变为如上②所示,并且搜索文本根据我的意愿消失了。
/url/corelog/?scoreRange=0+-+0.9
如果我先使用过滤器(URL变为②),然后再使用搜索,则URL如下所示(搜索文本和过滤器均包含)。
url/corelog/?q=test&scoreRange=0+-+0.9
我需要用①(/ur/corelog/?q=test
)代替。
并且搜索也不起作用。
执行搜索时如何清除过滤器?
下面是我的管理类和list_filter
Class CoreLogAdmin(admin.ModelAdmin):
form = CoreLogAdminForm
search_fields = ('question',)
list_filter = (RangeFilter,)
list_display = ('question', '_predicted_result', 'datetime_created')
fields = ('question', 'predicted_result', 'datetime_created')
class RangeFilter(admin.SimpleListFilter):
title = 'Score'
parameter_name = 'scoreRange'
template = 'admin/shuchi_logging/input_filter.html'
def lookups(self, request, model_admin):
return (
('Yes', ''),
)
def queryset(self, request, queryset):
value = self.value()
"""
making queryset
"""
return queryset
答案 0 :(得分:0)
在def queryset:
的{{1}}中。如果您有class RangeFilter
的任何参数,则可以直接search_fields
,而无需进行任何查询集。