-
Notifications
You must be signed in to change notification settings - Fork 0
/
readme.rus.txt
100 lines (66 loc) · 5.28 KB
/
readme.rus.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# TagsField для Django
## ЧТО ЭТО
TagsField — это маленькое приложение для [Django](http://www.djangoproject.com/),
которое реализует возможность приписывать теги к произвольным объектам в вашем
приложении, отображать их и редактировать в формах.
Приложение содержит:
- Модель тега, который содержит собственно слово тега и ничего лишнего.
В нее можно при желании добавить что угодно.
- Новый тип поля TagsField, который по сути — стандартный ManyToManyField,
но со своим типом виджета для формы.
- Виджет для формы, который умеет редактировать теги с автоподсказкой.
## ОСОБЕННОСТИ
Эти вещи скорее всего повлияют на ваше решение использовать или не использовать
TagsField:
- Добавление тегов происходит полностью по инициативе пользователя: если
пользователь добавил тег, которого нет, тот автоматически создается.
- Автоподсказка не использует ajax, все теги грузятся сразу на страницу. Поэтому
для большого количества тегов оно может не подойти.
- Подбор значений в автоподсказке идет с игнорированием незначительных отличий
написания (знаки препинания, пробелы, слово "the").
- Теги не категоризируются. Если вы вешаете теги на разные типы объектов, их
исходный набор будет одинаков.
## УСТАНОВКА И ИСПОЛЬЗОВАНИЕ
1. Поместить директорию 'tagsfield' в питоновский путь.
2. Включить 'tagsfield' в INSTALLED_APPS
3. Установить нужные таблицы в базу через ./manage.py syncdb
4. Скопировать (или слинковать) директорию 'media' в свой MEDIA_ROOT, где она
будет доступна по HTTP через MEDIA_URL.
После этого можно использовать поле тегов в ваших моделях.
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.
Если настройка не задана, то названия тегов отображаются без ссылки.
## КООРДИНАТЫ
Версия: 2.3
URL: http://softwaremaniacs.org/soft/tagsfield/
Автор: Иван Сагалаев ([email protected])
Лицензионное соглашение читайте в файле LICENSE (лицензия — BSD, если коротко).