2017-02-26 98 views
3

所以我有兩個表,類別Django的計數一對多的關係

代碼:

model.py

class Category(models.Model): 
    category = models.CharField(max_length=100) 

    def __str__(self): 
     return self.category 

class Post(models.Model): 
    title = models.CharField(max_length=200) 
    author = models.CharField(max_length=40) 
    category = models.ForeignKey(Category) 
    content = models.TextField() 
    created_date = models.DateTimeField(default=timezone.now) 

    class Meta: 
     ordering = ['-created_date'] 

    def __str__(self): 
     return self.title + ' - ' + str(self.created_date.date()) 

我想在模板中實現類別列表。例如,我有幾類

體育(2)2-number of how many posts are within sports category

模板代碼:

<h3>Categories</h3> 
    <ul class="nav navbar-stacked"> 
     {% for category in categories %} 
      <li><a href="#">{{ category }}<span class="pull-right">(
       {{ **post.category.count** }} 
      )</span></a></li> 
     {% endfor %} 
    </ul> 

我怎樣才能做到這一點?

回答

1

在模板中,你可以做

{{ category.post_set.count }} 

得到Post對象與category映射到特定類別的對象的數量。

您可以閱讀更多關於反向查找here

+0

謝謝!它的工作:) + –

+0

如果它適合你,你能接受答案嗎? –

+0

4分鐘,看來如果15分鐘沒有通過,我不能接受:) –