代码之家  ›  专栏  ›  技术社区  ›  meder omuraliev

Django:重构模板视图以包含计数?

  •  2
  • meder omuraliev  · 技术社区  · 14 年前

    模板:

     <ul id="bugs-list">
      {% for group in groups %}
    
          <h2>{{ group.name }}</h2> <span></span>
          {% for data in group.grab_bugs %}
              <li><a href="{{data.get_absolute_url}}">{{data.name }}</a></li>
          {% endfor %}
    
      {% endfor %}
    
      </ul>
    

    型号.py:

    class BrowserGroups( models.Model ):
        name = models.CharField( max_length=100 )
        slug = models.SlugField(unique=True)
        browsers = models.ManyToManyField( 'Browser' )
    
        def grab_bugs(self):
            bugs = Bug.objects.filter(browser__browsergroups=self,really_bug=True).distinct()
            return bugs
    
        def __unicode__(self):
            return self.name
    
        class Meta:
            verbose_name_plural = 'Browser Groups'
    

    我正在尝试呈现错误的数量( data )靠近 <h2> . 怎样才能有效地包括 数据 靠近h2?我应该在我的模型类中定义一个单独的函数来返回bug的总数吗?还是有更有效的方法?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Manoj Govindan    14 年前
    {% with group.grab_bugs as distinct_bugs %}
        <h2>{{ group.name }}</h2> (Count: {{ distinct_bugs.count }})
        {% for data in distinct_bugs %}
            <li><a href="{{data.get_absolute_url}}">{{data.name }}</a></li>
        {% endfor %}
    {% endwith %}
    

    说明: grab_bugs 方法 Group 类返回的查询集 Bug 实例。要获取错误计数,请调用 count() 方法。

    这将花费您两个查询(不计算循环中的查询)。一个用于获取计数,另一个用于检索错误列表。