JQuery Автозаполнение тегов - PullRequest
1 голос
/ 03 февраля 2010

Может кто-нибудь сказать мне, как использовать автоматическое заполнение тегов в шаблонах django?

Я сделал это в интерфейсе администратора django, но я не понимаю, как это сделать в шаблоне.

Заранее спасибо

Ответы [ 3 ]

2 голосов
/ 03 февраля 2010

В моем шаблоне у меня есть этот код:

$(document).ready(function(){
  $("#tags1").autocomplete("/taglookup/", {
        width: 320,
        multiple: true,
        multipleSeparator: " "
         });
   }

и на моем url.py у меня есть это на кортеже urlparttern, это может быть что угодно в зависимости от того, как вы хотите связать ваши представления и URL!

(r'^taglookup/$', 'twine.twineapp.views.tag_lookup')

и на моем views.py представление tag_lookup реализовано как:

def tag_lookup(request):
    # Default return list
    results = []
    if request.method == "GET":
        if request.GET.has_key(u'q'):
            value = request.GET[u'q']
            # Ignore queries shorter than length 2
            if len(value) > 2:
               TI = Tag.objects.filter(name__startswith=value.lower())
               results = [ x.name for x in TI]
    return HttpResponse('\n'.join(results), mimetype='text/plain')

PS: я использую пакет Tagging , поэтому у меня есть объект Tag в приведенном выше коде.

2 голосов
/ 03 февраля 2010

Вы можете использовать мое повторно используемое приложение django-tagging-autocomplete и воспользоваться предоставленным виджетом формы TagAutocomplete. Подробнее об использовании виджета можно узнать в документации в разделе «Использование виджета формы».

Обратите внимание, что приложение требует использования django-tagging для ваших тегов. Вам также нужно поместить {{ form.media }} (где «form» - это имя вашей формы) внутри раздела <head> в вашем шаблоне, чтобы разрешить виджету включать его файлы JavaScript.

1 голос
/ 03 февраля 2010

Это из шаблона, где я реализовал автозаполнение

$(document).ready(function() {

    $("#searchbox").autocomplete('/search_stuff/', {
        width: 300,
        multiple: false,
        matchContains: true,
        delay: 900,
        extraParams: {
               s: function() { return $("#status").val(); }
        }
});

Где search_stuff возвращает текстовый список всех элементов, которые соответствуют критериям. Это помогает?

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