【发布时间】:2020-10-28 11:14:10
【问题描述】:
我有一个模型管理员,我以这种方式覆盖 get_search_result
def get_search_results(self, request, queryset, search_term):
queryset, use_distinct = super(OccupancyAdmin, self).get_search_results(
request, queryset, search_term
)
search_words = search_term.split(",")
if search_words:
q_objects = [
Q(**{field + "__icontains": word})
for field in self.search_fields
for word in search_words
]
queryset |= self.model.objects.filter(reduce(or_, q_objects))
return queryset, use_distinct
建议来自这里:Is there a way to search for multiple terms in admin search? django
我面临的问题如下:来自rangefilter 的DateTimeRangeFilter 和我的自定义SimpleListFilter 都不再按预期工作了。过滤器似乎被禁用了。
我查看了正在执行的 SQL 查询,它们看起来还不错。
我很确定我以某种方式弄乱了查询集,但不知道如何调试。
【问题讨论】:
标签: python django django-admin django-filter