taggit - теги¶
# settings.py
INSTALLED_APPS = (
...
'taggit',
)
# models.py
from taggit.managers import TaggableManager
class SomeModel(models.Model):
tags = TaggableManager()
# forms.py
from taggit.forms import TagField
class SomeForm(forms.ModelForm):
class Meta:
model = SomeModel
tags = TagField(label="tags")
# views.py
SomeModel.objects.filter(tags__name='python')
SomeModel.objects.filter(tags__name__in=('python', 'django')).distinct()
TaggableManager¶
- class
taggit.managers.
TaggableManager
(blank, verbose_name, help_text)¶ Менеджер, реализующий возможность работы с тегами.
-
add
(*tag_names)¶ Добавляет теги
record.tags.add("python") record.save()
-
all
()¶ Возвращает все теги
post.tags.all() # [<Tag: jazz>, ...]
-
clear
()¶ Удаляет все теги
record.tags.clear() record.save()
-
remove
(*tag_names)¶ Удаляет теги
record.tags.remove("python", "django") record.save()
-
set
(*tag_names)¶ Удаляет все теги и записывает новые
record.tags.set("python") record.save()
-