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()
的答案。