Fabulous Tagging for Django
django-tagulous的Python项目详细描述
Django的标签库建立在ForeignKey和ManytomanyField的基础上, 你的所有正常能力加上一点点标记语法糖。
功能
- 易于安装-简单的要求、简单的语法、许多选项
- 基于foreignkey和manytomanyfield,因此很容易查询
- 如果需要,可内置自动完成支持
- 在单个模型上支持多个独立的标记字段
- 可用作用户可自定义的字符域,可供选择
- 支持嵌套标记树,以便进行详细分类
- 管理标记和标记模型的管理支持
版本0.14.0;在Python2.7和3.2到3.7上支持Django1.4.2到2.1。
见Documentation 有关Tagulous工作原理的详细信息;特别是:
- Installation -如何安装Taguous
- Example Usage -请参见使用中的Taguous示例
- Upgrading-如何升级tagous,并查看 changelog。
- Contributing -如何为Taguous做出贡献, roadmap。
快速启动
使用pip install django-tagulous安装,将tagulous添加到django的 INSTALLED_APPS,然后开始向模型添加标记字段:
from django.db import models import tagulous class Person(models.Model): name = models.CharField(max_length=255) title = tagulous.models.SingleTagField(initial="Mr, Mrs, Miss, Ms") skills = tagulous.models.TagField()
现在可以使用字符串、列表或查询集设置和获取它们:
myperson = Person.objects.create(name='Bob', title='Mr', skills='run, hop') # myperson.skills == 'run, hop' myperson.skills = ['jump', 'kung fu'] myperson.save() # myperson.skills == 'jump, "kung fu"' runners = Person.objects.filter(skills='run')
在后台,标记存储在单独的模型中(默认情况下),因此 因为字段基于ForeignKey和ManyToManyField更多 复杂的查询很简单:
qs = MyRelatedModel.objects.filter( person__skills__name__in=['run', 'jump'], )
除此之外,您还可以在公共和管理表单中获得自动完成功能, 自动slug生成,unicode支持,可以轻松构建标签云, 并且可以嵌套标签以进行更复杂的分类。