Return object tags as a list
-
31-05-2021 - |
Question
Using django-tagging, for an object that has multiple tags assigned to it, how can I return a simple list of tag names?
object.tags() returns an object that is not easily translated to json, and TaggableManager is not iterable.
Any other ways?
Solution
There is a undocumented function in TaggableManager called 'get_query_set', from which it is easy to get the list:
tagsList = []
for tag in foobar.tags.get_query_set():
tagsList.append(tag.name)
OTHER TIPS
First variant
class MyClass(models.Model)
...
def get_tag_names(self):
return [tag.name for tag in Tag.objects.get_for_object(self)]
Second variant:
class MyClass(models.Model)
...
def get_tag_names(self):
return Tag.objects.get_for_object(self).values_list('name', flat=True)
I think both should work.
tags_list = []
for tag in foobar.tags.all():
tags_list.append(tag.name)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow