Используйте django tagging .
В вашей модели вы делаете: tags = TagField()
и presto, у вас есть теги, которые ведут себя так, как вы ожидаете.Приложение также поставляется с несколькими тонкостями для выполнения общих задач.например, разбирать ввод в теги или выводить теги в шаблонах.
В общем, вы можете иметь поля ManyToMany, например, так:
some_things = models.ManyToManyField(OtherModel)
вот документы для этого.Вы можете иметь несколько полей ManyToManyFields в одной модели, вам просто нужно указать связанные имена.