Проблемы с автозаполнением в Django и Jquery
Я знаю, что здесь есть несколько постов об автозаполнении и django, но я недавно вошел в сферу jquery и как-то потерялся. Как вы можете себе представить, мне нужно автозаполнение для следующего поля:
HTML файл
<div class="ui-widget">
<input name="user_name"class="form-control "id="company-search">
</div>
<script type="text/javascript">
$(function() {
$("#company-search").autocomplete({
source: '{% url 'autocomplete' %}',
minLength: 1,
});
});
</script>
URL
path('autocomplete/',views.autocomplete, name='autocomplete')
Виды
def autocomplete(request):
data = request.GET['term']
forecast = LeadEntry.objects.select_related('lead_id')
companies = [str(i.lead_id.company).lower() for i in forecast]
search = [i for i in companies if i.startswith(data.lower()) ]
result = []
for company in search:
data = {}
data['label'] = company
data['value'] = company
result.append(data)
print(json.dumps(result))
mimeetype='application/json'
return HttpResponse(json.dumps(result),mimeetype)
Обратите внимание, что часть ajax работает хорошо, я вижу, что представление работает каждый раз, когда я ввожу новую букву, я получаю json файл с правильными данными.
Моя настоящая проблема в том, что я не могу отобразить это в моем HTML, как мне отправить обратно данные, добавленные в то же поле, в идеале, я хочу иметь возможность получить выпадающий список?
На стороне javascript я получаю следующие ошибки:
Приветствует
Из jQuery docs свойство source свойства autocomplete ожидает список ключевых слов, но вы передаете ему django url.
Вам нужно сначала обратиться к вашему django url скорее всего с помощью ajax GET вызова, чтобы получить список ключевых слов, а затем поместить этот список ключевых слов в свойство источника автозаполнения.
Ответ в разделе комментариев, похоже, решил проблему, чтобы помочь другим, я пишу здесь:
Проблема связана с версией jQuery UI, используйте CDN версию 1.13.0 jQuery UI:
<script src = "https://code.jquery.com/ui/1.13.0/jquery-ui.min.js"> </script>