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)]
2番目のバリアント:
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)