Как мне управлять поиском базы данных в реальном времени в веб-приложении Django? - PullRequest
0 голосов
/ 13 июня 2019

Я хочу создать веб-приложение, в котором пользователь выводится на веб-страницу с панелью поиска, и при каждом нажатии клавиши результаты поиска должны отображаться под панелью поиска.

На данный момент я настроил некоторый код JavaScript, чтобы скрывать и отображать элементы списка HTML при каждом нажатии клавиши, но это не совсем поиск в базе данных. Я полагаю, что мог бы перечислить всю базу данных (около 500 объектов и больше) в коде HTML, а затем отфильтровать ее с помощью Javascript, но я чувствую, что это неэффективно?

У меня есть пара идей, которые могут сработать: 1) То, что я только что описал выше. Перечислите всю базу данных в HTML и отфильтруйте, используя JavaScript. 2) Алголия или эластичная система поиска? Я пытался работать с обоими из них и не мог заставить их работать.

Как мне, по вашему мнению, делать это? Я новичок в веб-разработке, и я не уверен, что это лучший путь. Спасибо за любую помощь!

1 Ответ

1 голос
/ 13 июня 2019

Большинство (или многие) люди делают это с автозаполнением (например, jQuery ) на внешнем интерфейсе и конечной точкой для запроса к БД.

  $( "#search_input" ).autocomplete({source: "/search_view"});

И /search_view перейдет к представлению, которое возвращает JSON. Может быть что-то вроде этого.

def search_view(request):
    term = request.GET.get('term')
    data = []
    if term:
        items = Item.objects.filter(value__icontains=term).values('value', 'id')
        data = json.dumps(items)  

    return HttpResponse(data, content_type='application/json')  

Есть множество других вещей, которые можно сделать, это просто простой пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...