如何在django中为每个模型关联多种类型的标签

时间:2010-09-22 17:01:55

标签: django django-models

我对django不熟悉,并试图寻找最好的办法,而不是自己写一切。我正在开发一个模型,我需要多种类型的标签与模型相关联,然后我想使用多个过滤条件检索对象。我看到django-tagging标签是按模型存储的,所以我认为每个模型不可能有多个标签。例如:

   class Place( model ):
     category = TagField() # fun, play, learn, relax
     sport    = TagField() # boating, hunting, fishing

是否可以使用django-tagging执行此操作?我错过了什么,因为这看起来很常见。

2 个答案:

答案 0 :(得分:1)

我没有django-tagging的经验,但看着它的模型:

http://code.google.com/p/django-tagging/source/browse/trunk/tagging/models.py#456

很明显,您只能将标签附加到模型,但每个模型没有多个标签组。 写这个,你可能会成功地标记标签本身,虽然这不是人们可以想象的最好的设计:)

答案 1 :(得分:1)

好像你在谈论所谓的机器标签。这些是带有名称空间和/或值的标记。 (Flickr使用这种方法:它允许我们用upcoming:event=81334标记照片,并将此标记显示为即将发生的事件的链接。)

2007年提交的django-tagging存在问题:请参阅code.google.com/p/django-tagging/issues/detail?id=14。

不幸的是,核心维护者没有评论。然而,GregorMüllegger在这里有一个'machinetags'分支: https://code.launchpad.net/~gregor-muellegger/django-tagging/machinetags/

最新提交但是缺少一些提交)。我记得大约一年前我在使用那个分支开展一些项目;它工作得很好。有关更多详细信息,请阅读有关该问题的分支文档和注释文档。