我在SearchQuerySet()(django-haystack)中返回"or"查询的结果时遇到了困难。
在某些情况下它可以工作,但在其他情况下它不起作用,所以我想知道这是否是我如何调用"or"查询的问题。
目前,我想匹配用户搜索的类别中的餐厅 + 该类别的自由格式搜索。这是我所拥有的:
restaurants = SearchQuerySet().filter_or(category__name=self.query)
.filter_or(content=Raw(self.query))
.order_by('-weight')
.models(Restaurant)
本质上,返回的结果应该是(类别结果)+(自由格式结果)。这里可能有什么问题?
filter_or
需要将参数全部包含在同一个调用中。这应该可以代替:
restaurants = SearchQuerySet().filter_or(
category__name=self.query,
content=Raw(self.query)
).order_by('-weight').models(Restaurant)