Django或ManyToMany字段中的一个模型上的多个标记字段?

时间:2011-11-02 07:35:12

标签: django django-models django-tagging

我的Book模型需要两个单独的标记字段:genretags。我正在考虑为此编写自己的GenreBookTag模型,并将其与ManyToManyField链接或使用DjangoTagging来实现相同目标是否更好。

最终,我需要用户能够根据genre或根据tag进行过滤,但我不需要Tag Cloud功能。

从我所看到的,Django Tagging允许两个TagField,但随后它将两者都投射到同一个标签云中。这对我来说不是问题,但在我开始重构我的所有代码以使用Django Tagging而不是我自己的ManyToMany字段之前,在这种情况下我是否应该注意使用Django Tagging的任何其他捕获?

1 个答案:

答案 0 :(得分:4)

<强>否定

  • Django标记字段没有slug字段,因此如果要在Urls中使用它们,则需要手动填充tag.name

  • 你不能(没有子类化django-taggings模型)将任何其他字段添加到流派或书籍标签中,这样你就不能轻易地描述流派或标签。

  • 关于可用性:如果您正在使用django-tagging,那么您可能会更多地使用TagField来输入标签(无论是流派还是书签)。这样做的问题是你需要记住你之前使用过的标签,而不是你从列表中选择的外键或许多字段。

<强>积极因素

  • Django标记有一个很好的API来查询标记和标记的项目

django-taggit是另一个标记应用程序,它被广泛使用并且仍然开发并克服了上述一些限制