How to add custom Managers to Taggit models django
I have a django app and trying to use django-taggit in it
Actually django-taggit had two models in its API at taggit/models as below
class Tag(TagBase):
class Meta:
verbose_name = _("Tag")
verbose_name_plural = _("Tags")
class TaggedItem(GenericTaggedItemBase, TaggedItemBase):
class Meta:
verbose_name = _("Tagged Item")
verbose_name_plural = _("Tagged Items")
But i had written by custom managers to use for both classes(Tag,
TaggedItem) something like as below
from django.db import models
class TagManager(models.Manager):
def update_tags(self, obj, tag_names):
"""
Update tags associated with an object.
"""
ctype = ContentType.objects.get_for_model(obj)
...........
...........
class TaggedItemManager(models.Manager):
"""
Something works here
"""
def get_by_model(self, queryset_or_model, tags):
........
......
return something
so now i need to update the default/original class with my custom managers
like below
class Tag(TagBase):
objects = TagManager()
class Meta:
verbose_name = _("Tag")
verbose_name_plural = _("Tags")
class TaggedItem(GenericTaggedItemBase, TaggedItemBase):
objects = TaggedItemManager()
class Meta:
verbose_name = _("Tagged Item")
verbose_name_plural = _("Tagged Items")
so how to override the objects attributes of the above classes from my
file.py, we can do this by inheriting the Tag, TaggedItem classes or is
there any other way ?
so that i can use by custom manager methods something like
Tag.objects.update_tags, TaggedItem.objects.get_by_model
No comments:
Post a Comment