2012-04-12 5 views
4

djangoタグを使用すると、複数のタグが割り当てられているオブジェクトの場合、単純なタグ名のリストを返すことはできますか?オブジェクトタグをリストとして返します

object.tags()はjsonに簡単に変換されないオブジェクトを返します。TaggableManagerは反復可能ではありません。

他の方法はありますか?私は両方が動作するはずだと思う

class MyClass(models.Model) 
    ... 
    def get_tag_names(self): 
     return Tag.objects.get_for_object(self).values_list('name', flat=True) 

答えて

6

リストを取得することは容易であるから「get_query_set」と呼ばれるTaggableManagerで文書化されていない機能がある:_should_が働いていることが

tagsList = [] 
for tag in foobar.tags.get_query_set(): 
    tagsList.append(tag.name) 
3

まずバリアント

class MyClass(models.Model) 
    ... 
    def get_tag_names(self): 
     return [tag.name for tag in Tag.objects.get_for_object(self)] 

第二の変形。

+0

- が、何らかの理由で、私はトラブル参照し、タグをインポートしていました。 – Goro

+0

「参照するのに困っていた」とはどういう意味ですか? – syabro

+0

そのまま、コードはTagを参照しません。私は 'import tag'と 'taggit import tag'を試しましたが、どちらもうまくいきませんでした。 – Goro

関連する問題