【问题标题】:How to associate multiple types of tags per model in django如何在 django 中为每个模型关联多种类型的标签
【发布时间】:2010-09-22 17:01:55
【问题描述】:

我对 django 并不陌生,并试图找到做事的最佳方法,而不是自己编写所有内容。我正在开发一个模型,我需要将多种类型的标签与模型关联,然后我想使用多个过滤条件检索对象。我看到在 django-tagging 中,每个模型都存储了标签,所以我认为每个模型不可能有多个标签。例如:

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

是否可以使用 django-tagging 来做到这一点?我是否遗漏了什么,因为这对我来说看起来很常见。

【问题讨论】:

    标签: django django-models


    【解决方案1】:

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

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

    不幸的是,核心维护者没有提供 cmets。然而,这里有一个由 Gregor Müllegger 维护的“machinetags”分支: https://code.launchpad.net/~gregor-muellegger/django-tagging/machinetags/.

    大部分与 django-tagging 主干同步(最新提交但缺少一些提交)。我记得自己大约一年前使用该分支进行了一些项目。它工作得很好。阅读有关该问题的分支和 cmets 文档以了解更多详细信息。

    【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 谢谢托马斯!我正在考虑编写自己的标记类/模型。在 django 中使用现有的标记会很棒。
    • 您可以尝试以这种方式修改 Django 标记。
    • 是的,这样我就可以重用现有的代码。我有点期待 django-tagging 有这个功能。
    猜你喜欢
    • 1970-01-01
    • 2012-12-24
    • 2013-04-06
    • 2022-01-15
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 2014-12-14
    • 2017-11-07
    相关资源
    最近更新 更多