3

这可能是一个愚蠢的问题,但我下载Django-taggit了文档,文档提到TaggableManager为我要关联的每个模型添加一个管理器。这很好,但是来自我“pip-ed”的外部应用程序的模型呢?将 taggit 与这些模型一起使用的最佳方式是什么?

4

3 回答 3

2

您可以使用 taggit 从任何外部应用程序轻松注册模型。假设模型的名称是 Item。

from taggit.managers import TaggableManager
from external_app.models import Item

Item.add_to_class('tags', TaggableManager())

然后你可以以通常的方式使用 taggit。

i = Item.objects.get(pk=1)
i.tags.add("wassup")
i.tags.all()
于 2013-03-27T10:59:58.083 回答
2

您可以在您自己的一个应用程序中将外部应用程序中的模型子类化,这可能是一个合理的解决方案,即

from someapp.models import SomeModel
from taggit.managers import TaggableManager

class SomeModelTagged(SomeModel):
    tags = TaggableManager()

然后在您从外部应用程序使用 SomeModel 的视图中,您将不得不使用新模型。

于 2012-09-12T11:18:01.083 回答
0

您可以让 pip 使用 (-e VCS+REPOS_URL[@REV]#egg=PACKAGE) 安装可编辑版本并自己添加 django-taggable 集成。

于 2011-10-31T01:00:01.357 回答