Django - Ссылка строки поиска с автозаполнением на страницу детализации элемента в результате поиска
У меня есть строка поиска с автозаполнением, но я не знаю, как связать ее с действием строки поиска.
Когда пользователь выбирает один из элементов из списка автозаполнения, я хочу перейти к файлу detail.html этого элемента (используя slug). Как мне вложить функцию автозаполнения в функцию поиска?
Сейчас у меня есть функция поиска, которая принимает искомый термин, создает список потенциальных кандидатов на товар с их url и показывает их в следующем файле search_result.html. Я хочу избежать этого шага и перейти прямо из строки поиска с автозаполнением на страницу с подробным описанием товара.
Смотрите ниже функции. Есть идеи, как это сделать? Извините, если это слишком просто :/
def search(request):
if request.method == "POST":
searched = request.POST['keyword']
search_vector = SearchVector("descr")
search_query = SearchQuery(searched)
item = Object.objects.annotate(search=search_vector, rank=SearchRank(
search_vector, search_query)).filter(search=search_query).order_by("text_len","-rank")
return render(request, 'search_result.html', {'searched':searched, 'item':item})
else:
return render(request, 'home.html', {})
def autocomplete(request):
if 'term' in request.GET:
search_vector = SearchVector("descr")
search_query = SearchQuery(request.GET['term'])
qs = item = Object.objects.annotate(search=search_vector, rank=SearchRank(
search_vector, search_query)).filter(search=search_query).order_by("text_len","-rank")
titles = list() # source at the autocomplete in the JQuery expects an url with a list of potential items.
for i in qs:
titles.append(i.descr)
return JsonResponse(titles, safe=False)
return render(request, 'home.html')
def detail(request, slug):
item = get_object_or_404(Object, slug = slug)
context = {'item' : item,}
return render(request, 'detail.html', context)