我目前正在尋找我的Django網站,並且想要查詢,然後查看它在帖子名稱和說明中出現的次數,並返回帶有查詢出現的帖子的結果最上面(即如果我搜索「汽車」有5次提及的車的帖子應該出現在提到「汽車」的帖子之前)。按總髮生次數排序篩選結果
這裏是我的views.py:
def stack_list(request, query):
context_dict = {}
stacks_list = Stack.objects.filter(
Q(name__icontains=query) |
Q(description__icontains=query)
).annotate(total_occurance=Count('name')+Count('description')
).order_by('total_occurance').distinct()
context_dict['stacks_list'] = stacks_list
return render(request, 'stack/index_search_results.html', context_dict)
和我的html:
{% for stack in stacks_list %}
<p>{{ stack.name }}
{{ stack.description }}</p>
{% endfor %}
然而,當我嘗試查詢,它不會將其安排在降序排列。關於我要去哪裏的任何想法都是錯誤的?
它是按升序排列嗎?還是沒有訂購? –
它似乎沒有被排序 – ng150716
嘗試刪除'.distinct()'。當你使用distinct和order_by時,似乎有一個問題。 (https://docs.djangoproject.com/en/1.10/ref/models/querysets/#distinct) –