计算在django循环中分配给该类别的对象

时间:2015-04-17 14:01:09

标签: django

我的模板中有一个循环,它可以获得所有类别 像这样:

<div class="panel">
    <h4 class="title1">Категории</h4>
        <ul class="clear-list">
        {% for categ in categs %}
            <li>
                <a href="/advert/adverts.aspx&cat{{ categ.id }}">{{ categ.name }}</a>
            </li>
        {% endfor %}
        </ul>
</div>

我的views.py看起来像:

def adverts(request):
    args = {}
    args.update(csrf(request))
    args['adverts'] =  Advert.objects.all().order_by('-advert_date', '-id')
    args['sections'] = AdvertSection.objects.all().order_by('-name')
    args['categs'] = AdvertCategory.objects.all().order_by('-name')
    args['username'] = auth.get_user(request).username
    return render_to_response('adverts.html', args)

现在问题......

如何显示附加到该类别的对象的总数?

输出:

Category1
Category2
Category3

预期产出:

Category1(115)
Category2(546)
Category3(832)

请帮帮我......

1 个答案:

答案 0 :(得分:1)

假设附加到您的类别的对象称为Advert s:

{% for categ in categs %}

    {{ categ.name }} ({{ categ.advert_set.count }})

{% endfor %}

如果您在related_name文件的Category ModelClass中更改了广告的属性models.py,则必须将advert_set调整为相应的related_name

有关如何访问相关对象的更多信息,请查看docs