使用django-tagging,对于分配了多个标签的对象,如何返回标签名称的简单列表?
object.tags()返回一个不易转换为json的对象,TaggableManager不可迭代。
还有其他方法吗?
答案 0 :(得分:6)
TaggableManager中有一个名为'get_query_set'的未记录函数,从中可以轻松获取列表:
tagsList = []
for tag in foobar.tags.get_query_set():
tagsList.append(tag.name)
答案 1 :(得分:3)
第一个变种
class MyClass(models.Model)
...
def get_tag_names(self):
return [tag.name for tag in Tag.objects.get_for_object(self)]
第二种变体:
class MyClass(models.Model)
...
def get_tag_names(self):
return Tag.objects.get_for_object(self).values_list('name', flat=True)
我认为两者都应该有用。
答案 2 :(得分:0)
tags_list = []
for tag in foobar.tags.all():
tags_list.append(tag.name)