2017-02-26 2 views
3

Also ich habe zwei Tabellen, Beitrag und KategorieDjango Zählen one to many Beziehung

Code:

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()) 

Und ich möchte Kategorieliste in Vorlage implementieren. Zum Beispiel habe ich einige Kategorien

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

Template-Code:

<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> 

Wie kann ich das erreichen?

Antwort

1

In Vorlage können Sie tun

{{ category.post_set.count }} 

Anzahl der Post Objekte zu erhalten mit category zu bestimmten Kategorie Objekt abgebildet.

Sie können mehr über Reverse Lookups here lesen.

+0

Vielen Dank! Es hat funktioniert :) + –

+0

Können Sie die Antwort akzeptieren, wenn es für Sie funktioniert hat. –

+0

4 weitere Minuten, es scheint, dass ich nicht akzeptieren kann, wenn 15min nicht bestanden wird :) –