Как скрыть количество уведомлений 0 в django-notifications-hq

#django #django-templates #django-notification

#django #django-шаблоны #django-уведомление

Вопрос:

Я пытаюсь скрыть количество уведомлений, когда оно равно 0 в django-notifications-hq Я пробовал приведенный ниже метод, но он не обновляется регулярно и не отображает число правильно.

  {% live_notify_badge as nc %}
                      {% if nc > 0|add:0 %}
                      <span class="badge-notifications badge badge-pill badge-danger" style="float:right;margin-bottom:-3px;margin-top: -2px !important; margin-left: 10px !important; font-size: 0.6rem;">
                      {% live_notify_badge %}</span> 
                      {% endif %} 
  

Комментарии:

1. nc это не количество уведомлений. Он генерирует некоторый HTML, который будет вызывать Javascript для получения количества уведомлений.

Ответ №1:

nc это не количество уведомлений. Он генерирует некоторый HTML, который будет вызывать Javascript для получения количества уведомлений.

Вы можете получить количество непрочитанных уведомлений в шаблоне с помощью:

 {{ user.notifications.unread.count }}
  

Таким образом, мы можем проверить, существует ли непрочитанное уведомление, и использовать это для отображения {% live_notify_badge %} :

 {% if user.notifications.unread.exists %}
    <span class="badge-notifications badge badge-pill badge-danger" style="float:right;margin-bottom:-3px;margin-top: -2px !important; margin-left:10px !important; font-size: 0.6rem;">
        {% live_notify_badge %}
    </span> 
{% endif %}  

Однако обратите внимание, что это будет отображаться на стороне сервера, так что это означает, что когда пользователь выбирает страницу и нет уведомлений, значок отображаться не будет. Однако, если позже появятся уведомления, они не будут отображаться.

Комментарии:

1. итак, если уведомление равно 0, пользователю необходимо обновить страницу, чтобы она обновилась? Я правильно понял?

2. @ashes999: да. Django — это серверная часть . Таким образом, это означает, что то, что вы отображаете в шаблонах, является частью, которую сервер отправляет обратно клиенту. Если вы хотите изменить часть, которая может изменить DOM, тогда вы используете JavaScript. Итак, в этом случае вам следует посмотреть, как JavaScript обновляет значок.