SearchQuerySet()'或'询问

时间:2016-02-09 18:30:38

标签: python django search django-haystack searchqueryset

我很难将结果返回给'或'在SearchQuerySet()(django-haystack)中查询。

在某些情况下它有效,但在其他情况下它不起作用,所以我想知道我是如何调用“或”的问题的。查询。

目前,我希望匹配用户搜索的类别中的餐馆+该类别的自由格式搜索。这就是我所拥有的:

restaurants = SearchQuerySet().filter_or(category__name=self.query)\
                            .filter_or(content=Raw(self.query))\
                            .order_by('-weight')\
                            .models(Restaurant)

基本上,返回的结果应该是(类别结果)+(自由格式结果)。这可能是什么问题?

1 个答案:

答案 0 :(得分:0)

filter_or需要将所有参数都包含在同一个调用中。这应该工作:

restaurants = SearchQuerySet().filter_or(
                                category__name=self.query,
                                content=Raw(self.query)
                             ).order_by('-weight').models(Restaurant)