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)
Вернуться на верх