Typehead.js для получения обновленного списка данных из базы данных в python django

file.js


  var source = new Bloodhound({
    hint: false,
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace("description"),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    // /a_c/p_s/?term=d&category=all
    remote: "/a_c/p_s/" + "?term=mobile&category=store",
  });

  source.initialize();

  $("#search-bar").typeahead(null, {
    name: "suggestion",
    displayKey: "search_text",
    source: source.ttAdapter(),
  });
});

urls.py

path('a_c/p_s/<term>/<category>', views.product_search,name='product_search'),

views.py

def product_search(request, term, category):
    pass

У меня есть выпадающий список категорий и поле ввода для текста поиска. Мне нужно получить список предложений из базы данных на основе измененного значения выпадающей категории и ввести значение текста поиска. Я использую typeahead. Я не знаю, правильно ли я делаю это или нет с typehead bloodhound. Пожалуйста, если кто-нибудь может помочь мне с этим.

Я получаю ошибку URL not found в консоли.

file.js

var source = new Bloodhound({
    hint: false,
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace("description"),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    // /a_c/p_s/?term=d&category=all
    remote:
      "/a_c/p_s/?term=" +
      $("#search-bar").val() +
      "&category=" +
      $(".serach_category").val(),
  });

  source.initialize();

  $("#search-bar").typeahead(null, {
    name: "suggestion",
    displayKey: "search_text",
    source: source.ttAdapter(),
  });

urls.py

path('a_c/p_s/', views.product_search,name='product_search'),

views.py

def product_search(request):
    """
        autocomplete feature
    """
    try:
        search_key = request.GET.get('term', '').lower().split(" ")
        print("search_key", search_key)
        request.session["serach_category"] = request.GET.get('category', '').title()

    except Exception as e:

вот что я делаю сейчас. но все еще не могу сказать, правильный ли это способ или нет. не стесняйтесь подсказать, если я делаю что-то не так.

Вернуться на верх