Python 如何计算Django内置模板上if的结果数

Python 如何计算Django内置模板上if的结果数,python,django,django-template-filters,Python,Django,Django Template Filters,我有以下情况: {% for subject in subjects %} {% if subject.media < 60 %} {{ subjects|length }} {% endif %} {% endfor %} {%用于主题中的主题%} {subject.media

我有以下情况:

{% for subject in subjects %}
    {% if subject.media < 60 %}
        {{ subjects|length }}
    {% endif %}
{% endfor %}
{%用于主题中的主题%}
{subject.media<60%时为%1}
{{受试者|长度}
{%endif%}
{%endfor%}

结果是“161616”,因为我的数据库中有16个主题,但我想显示媒体下的主题数量,如“3”。

我认为你应该写
{{subject | length}}
而不是
{subjects | length}
你不能在模板中这样做逻辑。在视图中进行查询

def my_view(request):
    num_under_60 = Subject.objects.filter(media__lt=60).count()
    return render(request, 'my_template.html', {'num_under_60': num_under_60})   

然后在模板中使用
{{num\u under\u 60}}

此查询将返回对象,您需要对它们进行计数,如下所示:
num\u under\u 60=len(Subject.object.filter(media\uu lt=60))
谢谢,这很有效。很好,我已经更新了使用
.count()
的答案。