#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 обновляет значок.