18 февр. 2010 г.

Автодополнение тэгов в django

Я очарован ещё одним django-приложением django-tagging-autocomplete. Сделать autocomplete(автодополнение/подсказоньки) тэгов с помощью этого приложения очень и очень просто.

4 шага со страницы проекта на Google Code (django-tagging у нас уже установлен, так?):

1. Установите django-tagging-autocomplete. Например так:


easy_install django-tagging-autocomplete


2. Скачайте jquery-autocomplete, положите в папку с вашим media контентом (надо сохранить структуру папок из архива). За нахождение библиотеки отвечает опция TAGGING_AUTOCOMPLETE_JS_BASE_URL, то есть можно её переопределить у себя в settings.

3. Добавляем "tagging_autocomplete" в installed apps в settings.

4. Добавляем строку в urls.py:


(r'^tagging_autocomplete/', include('tagging_autocomplete.urls')),


Использовать так:



from django.db import models

from tagging_autocomplete.models import TagAutocompleteField



class SomeModel(models.Model):

        tags = TagAutocompleteField()








и вот так для форм:




from django import forms

from tagging.forms import TagField

from tagging_autocomplete.widgets import TagAutocomplete



class SomeForm(forms.Form):

    tags = TagField(widget=TagAutocomplete())




Во фронт части надо как-то подключать скрипты jquery-autocomplete. Наверное, можно через form.media, но я тупо написал:





<script src="http://cdn.jquerytools.org/1.1.2/full/jquery.tools.min.js"></script>

<link href="/media/jquery.autocomplete.css" type="text/css" media="all" rel="stylesheet" /> 

<script type="text/javascript" src="/media/jquery.autocomplete.js"></script> 





Естественно, данное решение можно использовать и в django-cms. Если интересно, могу написать как.




Отправить комментарий