Плагин автозаполнения jQuery с использованием базы данных / модели Django - PullRequest
5 голосов
/ 13 февраля 2011

Кто-нибудь знает, как реализовать плагин jQuery для автозаполнения в Django, используя базы данных вместо локальных значений?

В частности, я хочу реализовать функцию «Замена страницы поиска», упомянутую внизустраницы, набор данных будет составлять около тысячи или более записей, но я не могу понять, как заставить его взаимодействовать с необходимыми полями моей базы данных.

(Я также в поисках хорошего Python /Поисковое решение Django для моего сайта - это очень простой сайт.)

Спасибо за вашу помощь.

1 Ответ

11 голосов
/ 13 февраля 2011

Я недавно что-то сделал с jQuery.autocomplete с одной моделью.

Функциональность города поиска, когда пользователь начинает писать имя:

в соответствии с документами jqueryui, чтобы сделать автозаполнение необходимым вам.входные данные, подобные этому:

<input id="n" type="text" name="n"/>

, поэтому javascript в моем шаблоне для присоединения библиотеки к этому входу выглядит следующим образом:

$(document).ready(function(){
     $( "input#n" ).autocomplete({
                            source: "{% url autocomplete_city %}",
                            minLength: 2
        });
});

, чтобы разрешить этот URL, вы должны написать что-то вродеэто в вашем urls.py

urlpatterns = patterns('cities.views',
    url(r'^autocomplete_city/$', 'autocomplete_city', name='autocomplete_city'),
)

, означающем, что у меня есть что-то вроде ракурса city.views.autocomplete_city:

def autocomplete_city(request):
    term = request.GET.get('term') #jquery-ui.autocomplete parameter
    cities = City.objects.filter(name__istartswith=term) #lookup for a city
    res = []
    for c in cities:
         #make dict with the metadatas that jquery-ui.autocomple needs (the documentation is your friend)
         dict = {'id':c.id, 'label':c.__unicode__(), 'value':c.__unicode__()}
         res.append(dict)
    return HttpResponse(simplejson.dumps(res))

что еще вам нужно?начните тестирование и запомните ДОКУМЕНТАЦИЯ - ВАШ ДРУГ ПОПРОБУЙТЕ сначала все сделать самостоятельно, Google, прочитайте документы, попробуйте 3 раза, если нет, stackoverflow ваш друг.

...