Note that to support for Django 1.11, the names of automatically generated tag models has had to change - they're no longer allowed to start with an underscore. There is a simple fix, but this version does therefore require additional upgrade steps - see the upgrade notes for more information.
Latest django-tagulous posts
Note that this version may require additional upgrade steps - see the upgrade notes for more information.
Tagulous is a tagging library for Django which is based on
ForeignKey relationships. I've been developing and using it internally for several years, and have recently tidied it up for release; it supports Django 1.4 to 1.9a, on Python 2.7 to 3.5.
It started with a simple enough idea - rather than use generic relations like other tagging libraries, use a subclass of
ManyToManyField which supports assignment using tag strings, to allow things like this:
class Person(models.Model): name = models.CharField(max_length=255) skills = TagField() person = Person.objects.create(name='Bob', skills='run ...