django - 搜索时清除 SimpleListFilter
问题描述
我在我的网站中使用“search_fields”和“list_filter”。当我做一个搜索 URL 变得像
①/ur/corelog/?q=test
并且搜索功能运行良好,当我使用 list_filter 时,url 变得像
②<code>/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
解决方案
在def queryset:
中class RangeFilter
。如果你有任何参数search_fields
,你可以return queryset
直接不做任何查询集。
推荐阅读
- javascript - 我该如何解决
- python - 如何在纯python中执行2个矩阵的张量积
- android - android 通知不会延迟 60 秒但会在 3 秒内触发
- selenium-webdriver - 每次运行 Protractor 时,Chrome 浏览器都会打开,即使将 firefox 设置为浏览器也是如此
- bitbucket - GCP Cloud Build:不再能够构建最新的提交
- java - 在 ListAdapter 中实现过滤器/搜索功能返回 UnsupportedOperationException
- java - 使用数学库的 Java 中的 Apache 简单线性回归
- go - 如何按顺序将字符串输入输入 bufio.Scanner 和 fmt.Scanln?
- visual-studio-code - 无法编辑默认 VSCode JSON 设置
- cakephp - Virtualize/Emulate/Catch-所有 PHP 文件在 /templates 目录