django: django-taggit usage

729 views Asked by At

This is probably a stupid question but I downloaded Django-taggit and the docs mentioned adding a TaggableManagermanager to the each model I want to associate. This is fine, but what about models from external apps I "pip-ed"? What's the best way to use taggit with these models?

3

There are 3 answers

1
RyanBrady On

You could have pip install the editable version with (-e VCS+REPOS_URL[@REV]#egg=PACKAGE) and add the django-taggable integration yourself.

0
tijs On

You could subclass the model in the external app in one of your own apps, that would probably be a reasonable solution, i.e.

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

class SomeModelTagged(SomeModel):
    tags = TaggableManager()

Then in the views where you used SomeModel from the external app you would have to use your new model instead.

0
Akshar Raaj On

You can easily register model from any of your external apps with taggit. Assume the name of the model is Item.

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

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

And then you can use taggit in usual way.

i = Item.objects.get(pk=1)
i.tags.add("wassup")
i.tags.all()