2013-07-17 59 views
3

我正在創建一個博客,並在帖子和類別之間具有多對多的關係。從django temaplate中的多對多關係中檢索信息

class Category(models.Model): 
    title = models.CharField(max_length=255) 
    slug = models.SlugField() 

    def __str__(self): 
     return self.title 

class Post(models.Model): 
    title = models.CharField(max_length=255) 
    subtitle = models.CharField(max_length=255,null=True,blank=True) 
    published_date = models.DateTimeField(auto_now_add=True) 
    draft = models.BooleanField(default=True) 
    body = RichTextField(config_name='blog') 
    slug = models.SlugField() 
    categories = models.ManyToManyField(Category) 
    featured = models.BooleanField(default=False) 

我試圖找回在模板中關聯到單個職位,所以我可以在文章底部顯示的分類標題類別的清單。

這是模板代碼,它顯示帖子正確,但不是類別。

{% for post in blog_posts %} 

      <div class="post"> 
       <div class="date"> 
        {{post.published_date|date:"M"}} 
        <span class="day">{{post.published_date|date:"d"}}</span> 
        <span>{{post.published_date|date:"Y"}}</span> 
       </div> 
        <div class="entry"> 
         <div class="page-header"> 
          <h2 class="post-title"><a href="{% url blog_post post.id post.slug %}">{{post.title}}</a></h2> 
         </div> 
         <blockquote> 
          <p><strong>{{post.subtitle}}</strong></p> 
         </blockquote> 
         <p>{{post.body|safe}}</p> 
         <div class="well well-small"> 
          <i class="icon-th-list "></i> Categories:LIST CATEGORIES HERE 
         </div> 
        </div> <!--entry div--> 
      </div><!--post div--> 
{% endfor %} 

有沒有人有想過如何檢索特定帖子的類別?我非常感謝時間和專業知識。

回答

3

你可以用這個

{% for category in post.categories.all %} 
    {{ category.title }} 
{% endfor %} 

訪問類別我還建議將.prefetch_related('categories')的查詢集在您的視圖,以減少SQL查詢的數量。

+0

工作完美!我將閱讀prefetch_related並將其添加到我的查詢集中。謝謝您的幫助。 – bbrooke