问题描述
我很想尝试在django-notifications-hq中将通知计数设为0时将其隐藏 我尝试了下面的方法,但是它不能定期更新并正确显示数字。
{% 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 %}
解决方法
nc
不是通知数。它会生成一些HTML,这些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 %}
但是请注意,这将在服务器端呈现,这意味着当用户获取页面且没有通知时,它将不会显示徽章。但是,如果以后有通知,这些通知将不会呈现。