【发布时间】:2019-07-03 00:57:51
【问题描述】:
我有一个 HTML 按钮,应该按字母顺序对搜索结果进行排序。
按钮 HTML 代码:
<a href="?a-z=True" type="button" class="btn btn-outline-{% if 'a-z' in request.GET %}success{% else %}secondary{% endif %}">A-Z</a>
views.py:
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 request.GET.get('a-z') == 'True':
articles = articles.order_by('Title')
目前,URL 包含用户搜索的关键字。例如,如果用户搜索“奶酪”,则 URL 将为 search/?keyword=cheese。当我单击排序按钮时,URL 变为search/?a-z=True 并丢失了关键字,这意味着排序机制没有根据关键字对搜索结果进行排序。我想我需要 URL 同时包含关键字和?a-z=True,以便排序机制在搜索结果上起作用。我怎样才能做到这一点?
【问题讨论】:
标签: django python-3.x