如何在Django模板中执行增量运算符

时间:2019-06-28 12:17:53

标签: python django

我正在尝试获取聊天中未读消息的数量,它在django shell中运行良好,但是由于无法使用增量运算符,因此我在模板中遇到了问题

在django shell中,我使用了以下代码

# After importing the required models
unread = 0 
for message in chat.messages.all():
    if message.read != True:
       unread += 1

这很好

在模板中,我使用了下面的代码

{%for message in chat.messages.all %} 
             {% with unread=0 %}  
             {% if message.read != True %} 
                  {{unread+=1}}
             {% endif %}
             {% endwith %}
     <span class="badge badge-light badge" style="margin-top: 27px; font-size: 2.5em; float:right; border-radius: 1.0rem;">{{unread}}</span>

{%endfor%}

我希望能够像在django shell中一样输出未读消息的数量

1 个答案:

答案 0 :(得分:0)

您不需要增加。只需计算视图中的未读消息,然后将其传递到模板即可。您不需要模板中的for循环。

视图

unread = chat.messages.filter(read=False).count()

模板

<span ...>{{ unread }}</span>