计算django模板的实例数
我已经阅读了所有其他的答案,有些说你可以,有些说你不能,所以我尝试了。我试图做的是迭代我的数组,如果对象的id匹配,则增加计数器,稍后再显示它。我把它设置成这样:计算django模板的实例数,django,templates,Django,Templates,我已经阅读了所有其他的答案,有些说你可以,有些说你不能,所以我尝试了。我试图做的是迭代我的数组,如果对象的id匹配,则增加计数器,稍后再显示它。我把它设置成这样: {% with elect_count=1 %} {% for device in devices %} {% if device.ixDeviceType.ixDeviceClass_id == 3 %} {{ elect_count|add
{% with elect_count=1 %}
{% for device in devices %}
{% if device.ixDeviceType.ixDeviceClass_id == 3 %}
{{ elect_count|add:1 }}//increment the counter
{% endif %}
{% endfor %}
<li style="list-style: none;" class="padding5">
<span class="glyphicon glyphicon-flash" style="color: yellow; font-size: larger;"></span>
<span name="meter-count">{{ elect_count }}</span>//display total number of elect_count
<ul id="meter-summary">
</ul>
</li>
{% endwith %}
{%选择计数=1%}
{设备%中设备的%s}
{%if device.ixDeviceType.ixDeviceClass_id==3%}
{{elect_count}add:1}//递增计数器
{%endif%}
{%endfor%}
{{elect\u count}}//显示elect\u count的总数
{%endwith%}
但是当我运行它时,它显示1
而不是递增这个elect\u count变量,当我执行{{elect\u count}}
时,它是0
您不能在模板中保存计数器,但可以在视图中保存,并在上下文中传递: views.py
def view_function(request):
elect_count = 0
for device in devices:
if device.ixDeviceType.ixDeviceClass_id == 3:
elect_count += 1
context['elect_count'] = elect_count
无法在模板中保存计数器,但可以在视图中保存计数器,并在上下文中传递计数器: views.py
def view_function(request):
elect_count = 0
for device in devices:
if device.ixDeviceType.ixDeviceClass_id == 3:
elect_count += 1
context['elect_count'] = elect_count
这是因为不是在模板中计数,而是在视图中计数,并在上下文中传递结果。你不应该把这样的逻辑放在模板中,模板只是为了显示。我知道,但我真的不想在我的请求上下文中传递50个变量,所以我想我可以这样做,因为jinja2允许这样做,但意识到django default不是jinja2,而是数据结构(如列表或字典)中的所有计数,然后循环数据结构以获得每个计数。啊,我明白你的意思了。谢谢,这是因为您不在模板中计数,而是在视图中计数,并在上下文中传递结果。你不应该把这样的逻辑放在模板中,模板只是为了显示。我知道,但我真的不想在我的请求上下文中传递50个变量,所以我想我可以这样做,因为jinja2允许这样做,但意识到django default不是jinja2,而是数据结构(如列表或字典)中的所有计数,然后循环数据结构以获得每个计数。啊,我明白你的意思了。谢谢