我有一个搜索引擎代码和一个按字母顺序排列的按钮,但我无法让它们一起工作。 搜索引擎代码:
def query_search(request):
articles = cross_currents.objects.all()
search_term = ''
if 'keyword' in request.GET:
search_term = request.GET['keyword']
articles = articles.annotate(similarity=Greatest(TrigramSimilarity('Title', search_term), TrigramSimilarity('Content', search_term))).filter(similarity__gte=0.03).order_by('-similarity')
if 'a-z' in request.GET:
articles = articles.order_by('Title')
按字母顺序对帖子进行排名的按钮代码:
<a href="?a-z=True" type="button" class="btn btn-outline-{% if 'a-z' in request.GET %}success{% else %}secondary{% endif %}">A-Z</a>
该按钮按字母顺序对所有帖子进行排名,而不是仅对搜索结果中的帖子进行排名。可能是因为我没有将按钮生成的request.GET
的值与输入到搜索引擎中的关键字生成的值组合在一起。如何修改代码,使按钮仅对搜索结果中的帖子进行排名?
答案 0 :(得分:0)
类似这样的东西:
if request.GET.get('a-z') == 'True':
articles = articles.order_by('Title')
您还需要对keyword
执行相同的操作。 request.GET
是字典。您只能将in
与列表一起使用。