【发布时间】:2016-01-05 04:07:00
【问题描述】:
我正在使用 operator.or_ 并将 Query() 对象传递给它。 Query() 对象包含 3 个查询,即
- 按名称
- 按说明
- 按标题
当我得到输出结果不按顺序出现?就像我想按名称优先,然后是描述,然后是标题?
这里是示例代码
def search(self, search_terms, filters, category=False, vendor=False):
terms = [term.strip() for term in search_terms.split()]
q_objects = []
if terms:
for term in terms:
q_objects.append(Q(name__icontains=search_terms))
q_objects.append(Q(description__icontains=search_terms))
q_objects.append(Q(title__icontains=search_terms))
qs = self.get_query_set()
if len(q_objects) > 1:
return qs.filter(reduce(operator.or_, q_objects))
else:
return qs
那么任何人都可以帮助它先按名称搜索顺序,然后按描述然后按标题搜索?
提前致谢!
【问题讨论】: