2011-10-30 12 views
3

這可能是一個愚蠢的問題,但我下載Django-taggit和文檔提到增加一個TaggableManager管理器到我想要關聯的每個模型。這很好,但是來自外部應用程序的模型「pip-ed」呢?在這些模型中使用taggit的最佳方式是什麼?django:django-taggit使用

回答

0

您可以使用(-e VCS + REPOS_URL [@REV]#egg = PACKAGE)將pip安裝可編輯版本,並自己添加django-taggable集成。

+0

我猜他想避免這一點。有了django-taggi * ng *,你可以註冊模型,但我還沒有測試過你是否可以在應用程序之外註冊來註冊。 – kaleissin

2

你可以繼承外部應用程序的模型在自己的應用程序之一,這可能會是一個合理的解決方案,即

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

class SomeModelTagged(SomeModel): 
    tags = TaggableManager() 

然後在你來自哪裏,你會在外部應用程序中使用SomeModel意見必須改用你的新模型。

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()