2012-10-15 42 views
8

django-taggitからすべての(ユニークな)タグを取得するには?私はすべてのタグをサイドバーに表示したいと思います。 現在、特定の投稿のすべてのタグを取得できますが、ブログ全体ですべての固有のタグを取得する必要があります。 models.pyでtaggitからすべてのタグを取得

コード:

from django.db import models 
from taggit.managers import TaggableManager 

# Create your models here. 
class Post(models.Model): 
    title = models.CharField(max_length=100) 
    body = models.TextField() 
    created = models.DateTimeField() 
    tags = TaggableManager() 

答えて

15

あなたは、データベース内のすべてのタグを取得するためにall()を使用することができます:あなたは完全なソリューションが必要な場合は

from taggit.models import Tag 
tags = Tag.objects.all() 

django-taggit-templatetagsを見ています。さまざまなtaggit APIをテンプレートに直接公開するために、タグリストのものを含むいくつかのtemplatetagsを提供します。

+0

ありがとうございました。投稿の下に「tags = Tag.objects.all()」を追加する必要がありますか?どのように表示するのですか? – Robby

+0

1つの投稿、つまり投稿= Post.objects.get(pk = 1)を意味しますか?またはすべての投稿(Post.objects.all())? –

+0

@Vinoいいえ、 'Post'モデルに追加しないでください。サイドバーを表示する現在のビューを編集し、テンプレートにタグリストを渡します。 'Tag.objects.all()'は、Django ORMを通してオブジェクトを検索するための標準的な方法です。詳細については、[documentation](https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-objects)を参照してください。タグ名だけが必要な場合は、リスト内包表記を使用してください: 'tag_names = [Tag.objects.all()のタグのtag.name]' –

関連する問題