在导航栏中显示未读计数

时间:2017-05-28 16:24:27

标签: javascript python json django

所以我目前在views.py

中有这个功能
def live_unread_notification_count(request):
    unread_notifications = Notification.objects.all_for_user(request.user).unread().count()
    data = {
        "unread_notifications": unread_notifications,
    }
    json_data = json.dumps(data)
    return HttpResponse(json_data, content_type='application/json')
    print data

我有我的网址

url(r'^notifications/unread_count/$', 'live_unread_notification_count', name='live_unread_notification_count'),

当我到达网址时,我得到了正确的通知数量,例如

{"unread_notifications": 2}

当此人刷新页面时,如何在html模板中的导航栏上显示此内容?

我需要一些JavaScript吗?

请帮忙。

1 个答案:

答案 0 :(得分:1)

我将使用jQuery来演示。

首先,在元素中添加id,以显示通知计数。

例如:

<span id="notifCount"></span>

现在,让我们来看看JS部分:

<!-- Put this code before the body tag ends -->

<!-- Load jQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<!-- JS code to fetch notif count -->
<script>
$(document).ready(function() {
    $.ajax({
        url: '{% url "live_unread_notification_count" %}',
        method: 'GET',
        success: function(data) {

            // assign the count to a variable
            var unreadNotifs = data['unread_notifications'];

            // put the count in the notifCount element
            $('#notifCount').html(unreadNotifs);
        }
    });
});
</script>

这个anwer为您提供了开始使用JS,jQuery和AJAX的起点。 阅读这些主题。有几天你应该好好去。