django模板过滤器:计数对象

时间:2011-01-31 05:33:35

标签: django templates filter count

我在models.py Region和Survey中有2个类。调查有region_select=model.ForeignKey(region),其他一些属性和区域只有name=models.CharField。使用django通用视图我创建了一个项目/区域列表,我希望有一个过滤的这些项目的数量。我的模板看起来像:

<..>
    <ul>
        {% for Region in regions_list  %}
            <p><b>{{ Region }}</b> <i>(count: {{ ??? }} )</i><br>
            {% for Survey in object_list  %}
                {% if Survey.region_select = Region %}
                    <a href="{% url region-display Region.id %}">{{ Survey }}</a>
                {% endif %}
            </p>
            {% endfor %}
        {% endfor %}
    </ul>
<..>

region_list是Region.objects.all()的查询集 与对象列表相同(Survey.objects.all()) 到目前为止,我得到了完美的清单,虽然我想分别为每个地区计算这些项目。 我已经尝试了object_list.filter(region_select=Region).count,但是编写任何内容到过滤器最终都会出现模板错误,说它无法解析我给过滤器的内容。什么到???地方的建议?那么自定义{{name | filter}}过滤器怎么样?再次,我只需要它会计算对象...哦,我也尝试添加相同Survey.objects.filter(region_select=Region).count的方法,但它最终写了一个地方和那些对象的类型(?!?)。

P.S。它不能复制/粘贴,重写时可能会出现如此简单的错误。

1 个答案:

答案 0 :(得分:5)

尝试:

Region.survey_set.all.count