Getting Started#

To get started using django-tag-fields simply install it with pip.

$ pip install django-tag-fields

Add "tag_fields" to your project’s INSTALLED_APPS setting and migrate.

./manage.py migrate

And then, to any model you want tagged, do the following.

from django.db import models

from tag_fields.managers import ModelTagsManager

class Food(models.Model):
    # ... fields here

    tags = ModelTagsManager()

Tip

To make django-tag-fields search for existing tags in a case-insensitive way, you need to modify the TAGS_CASE_INSENSITIVE setting.

By default, it is set to False, but you can change it to True in your Django settings file or wherever you store your settings.

TAGS_CASE_INSENSITIVE = True

Settings#

You can alter django-tag-fields behaviour by changing the Django-level settings below.

TAGS_CASE_INSENSITIVE

""""
Defaults to ``False``.  When set to ``True``, tag lookups will be case
insensitive.
"""
TAGS_STRIP_UNICODE_WHEN_SLUGIFYING

""""
Defaults to False.  When set to True, tag slugs will be limited to ASCII
characters.

If ``True`` and you also have ``unidecode`` installed,
then tag sluggification will transform a tag like (あい うえお) to (ai-ueo).

If ``True`` and do not have ``unidecode`` installed, then you will usually
be stripping Unicode, meaning that something like ``helloあい`` will be
slugified as ``hello``.
"""

Caution

The behaviour of TAGS_STRIP_UNICODE_WHEN_SLUGIFYING , when True, leads to situations where slugs can be entirely stripped to an empty string; we dont recommend activating this.