УСТАНОВКА И ИСПОЛЬЗОВАНИЕ
Поместить директорию 'tagsfield' в питоновский путь.
Включить 'tagsfield' в INSTALLED_APPS
Установить нужные таблицы в базу через ./manage.py syncdb
Скопировать (или слинковать) директорию 'media' в свой MEDIAROOT, где она будет доступна по HTTP через MEDIAURL.
После этого можно использовать поле тегов в ваших моделях.
from tagsfield.models import Tag
from tagsfield import fields
class Article(models.Model):
...
tags = fields.TagsField(Tag)
Полем "tags" в коде можно пользоваться точно так же, как стандатным ManyToManyField с той разницей, что в формах, создаваемых по этой модели, для тегов будет отображаться отдельный блок редактирования (см. demo.html). Чтобы она реально работал, требуемые скрипты и стили нужно заранее подключить на странице, где отображается форма:
<head>
...
{{ form.media }}
...
</head>
В админке поле тоже будет работать, и там media подключать не нужно, она это делает сама.
Все существующие в системе теги обычно хранятся в собственной модели Tag, которая есть в библиотеке. Они используются, в частности, и для автоподсказки в формах. Вместо нее можно использовать свою модель, важно лишь, чтобы она отвечала таким требованиям:
- содержала поле 'value' — отображаемый текст тега
- содержала поле 'norm_value' — нормализованный текст, по которому идет поиск
- все остальные поля должны быть или null'овые, или с default'ами, чтобы объект тега можно было создать, зная только value
НАСТРОЙКИ
Есть одна необязательная настройка:
TAGS_URL
: URL к странице тега на вашем сайте, если она есть. Чаще всего такой
страницей служит поиск объектов, у которых есть данный тег. Выглядит
как "http://domain/path/%s/", и тег подставляется в строку вместо %s.
Если настройка не задана, то названия тегов отображаются без ссылки.