4

使用 django-tagging,对于分配了多个标签的对象,我如何返回一个简单的标签名称列表?

object.tags() 返回一个不容易翻译成 json 的对象,TaggableManager 是不可迭代的。

还有其他方法吗?

4

3 回答 3

6

TaggableManager 中有一个未记录的函数,称为“get_query_set”,从中很容易获取列表:

tagsList = []
for tag in foobar.tags.get_query_set():
  tagsList.append(tag.name)
于 2012-04-13T17:06:06.327 回答
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)

我认为两者都应该工作。

于 2012-04-12T23:26:42.420 回答
0
tags_list = []
for tag in foobar.tags.all():
  tags_list.append(tag.name)
于 2020-09-05T08:53:48.317 回答