Tagulous provides two new model fields -
tagulous.models.SingleTagField, which you use to add tags to your existing models to make them tagged models. They provide extra tag-related functionality.
They can also be queried like a normal Django
ManyToManyField, but with extra query enhancements to make working with tags easier.
Tags are stored in tag model subclasses, which can either be unique to each different tag field, or can be shared between them. If you don't specify a tag model on your field definition, one will be created for you automatically.