我有两个 django 过滤器,我想用它们来过滤帖子,但一个帖子可以有很多类别,所以我将类别放在 URL 的列表中。现在问题来了——我需要按帖子的标题和类别进行过滤,但我需要以一种能够检查类别的联合的方式进行过滤。这是当前代码:
sqs = SearchQuerySet().all()
if 'title' in request.GET and request.GET['title'] != '':
sqs = sqs.filter_and(title=request.GET['title'])
if 'category' in request.GET and request.GET['category'] != '':
catlist = request.GET.getlist('category')
for i in catlist:
sqs = sqs.filter_or(category=i)
非常感谢你的帮助!
更多信息:Django 1.4.1,Django-Haystack 1.2.7
编辑:
我做了你建议的(使用__in):
if 'title' in request.GET and request.GET['title'] != '':
sqs = sqs.filter_and(title=request.GET['title'])
if 'category' in request.GET and request.GET['category'] != '':
catlist = request.GET.getlist('category')
sqs = sqs.filter_or(category__in=catlist)
但仍然没有运气 - 我无法按字段和类别搜索。仅按类别搜索似乎有效,但是当这两个字段一起输入时,它们不起作用。