Как выполнить инкрементальный оператор в шаблоне Django - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь получить количество непрочитанных сообщений в чате. Это прекрасно работает в оболочке django, но я столкнулся с проблемой в шаблоне, потому что не могу использовать инкрементный оператор

В оболочке django,я использовал следующие коды

# 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

1 Ответ

0 голосов
/ 28 июня 2019

Вам не нужно увеличивать. Просто посчитайте непрочитанные сообщения в представлении и передайте их в шаблон. Вам не нужен цикл for в шаблоне.

вид

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

шаблон

<span ...>{{ unread }}</span>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...