Я использую веб-инфраструктуру Django для базы данных, генерации страниц и т. Д.
jQueryUI / javascript сторона кода
Я хочу использовать jQueryUIвиджет автозаполнения , так как мой набор данных будет содержать около 1000 записей, которые я хотел запросить в базе данных.По приведенной выше ссылке утверждается, что вы можете просто предоставить URL-адрес, который возвращает данные JSON:
Автозаполнение можно настроить для работы с различными источниками данных, просто указав параметр источника.Источником данных может быть:
* an Array with local data
* a String, specifying a URL
* a Callback
Я взял пример по умолчанию с веб-сайта, который работает в моей системе.
Однако, если я изменюсьследующее:
$( "#tags" ).autocomplete({
source: availableTags,
});
до
$( "#tags" ).autocomplete({
source: "/search/", // url that provides JSON data
});
функция автозаполнения вообще не работает.
Я пытался заставить URL действительно возвращать ошибку (чтобы увидеть, использует ли он его) и вводить полный URL http://localhost:8000/search/
, ничего не работает.
Джанго часть кода
В url.py
...
(r'^search/$', 'search'),
...
В views.py
from django.http import HttpRequest, HttpResponse
from django.utils import simplejson
...
def search(request):
HttpResponse(simplejson.dumps(["hello", "world"]))
# Will implement proper suggestions when it works.
Должно быть, что-то не так с моим кодом, и я был бы очень признателен за любую помощь, которую вы можете предложить:)
РЕДАКТИРОВАТЬ РЕШЕНИЕ:
Благодаря @Thierry понял, что раньше не было оператора return
, добавил, что теперь я выгляжу так:
def search(request):
output = ["hello", "world"]
return HttpResponse(simplejson.dumps(output))
И это на самом деле работает!
(Кажется, это действительно мелкие ошибки, которые тратят большую часть моего времени, grrr)