我已经创建了一个搜索字段,它将搜索标题或描述中的一个术语,并返回匹配的所有文章的列表。在
def search(request):
term = request.GET.get('q')
posts = models.Post.objects.filter(
Q(title__icontains=term) | Q(description__icontains=term)
)
return render(request, 'posts/post_list.html', {'posts': posts})
这是可行的,但是我想对结果进行排序,这样标题包含搜索词的帖子会首先出现,然后是标题不包含搜索词但描述包含的帖子。在
我尝试创建两个查询并按如下方式对它们进行union
:
但从第一个例子来看,顺序似乎没有变化。在
This SO answer似乎介绍了如何通过创建一个评分系统来使用原始SQL来实现这一点。用Django来实现这个?在
Django准备然后对db执行一个查询,但是可以通过将queryset转换为list来调用force,例如:
相关问题 更多 >
编程相关推荐