使用 django-tagging,对于分配了多个标签的对象,我如何返回一个简单的标签名称列表?
object.tags() 返回一个不容易翻译成 json 的对象,TaggableManager 是不可迭代的。
还有其他方法吗?
使用 django-tagging,对于分配了多个标签的对象,我如何返回一个简单的标签名称列表?
object.tags() 返回一个不容易翻译成 json 的对象,TaggableManager 是不可迭代的。
还有其他方法吗?
TaggableManager 中有一个未记录的函数,称为“get_query_set”,从中很容易获取列表:
tagsList = []
for tag in foobar.tags.get_query_set():
tagsList.append(tag.name)
第一个变体
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)
我认为两者都应该工作。
tags_list = []
for tag in foobar.tags.all():
tags_list.append(tag.name)