Django 未读消息系统

Django Unread Messages System

我目前正在实施基于 Django 的对等测验系统,其中一个用户可以向另一个用户发起测验。(很像测验)。我已经实现了它的几乎所有主要组件,剩下的最后一个是网站内用户通知——用户可以在其中看到对他的新的未响应挑战的数量。

Django-notification 似乎使用基于电子邮件的通知,但我想在网站本身内通知用户 - 就像 Whosebug 对未读 notifications/messages 的通知一样,用户将能够看到该号码挑战选项卡下的活跃挑战。它不需要像 Whosebug 那样实时。

已广泛谷歌搜索,但未能找到解决方案。

如有任何帮助,我们将不胜感激。

如果您想要延迟更新,请 JavaScript setinterval call that repeats an Ajax 调用视图以检查通知。

例如,在你的基本模板中,有这样的东西(使用 jQuery)

function checkNotifications() {
    $.get("url", function(data) {
            // do something with the data
        }
    });
}
setInterval(checkNotifications, 30000);

每 30 秒检查一次通知。

WebSockets can be used for a live update mechanism. I haven't used websockets with Django, but this project 看起来很活跃并且在我的 Google 搜索中名列前茅。

不确定您是否想要这种更多 standard/simple 类型的流程,但这里是:

看来,

假设您已经有一个@login_required 来确定用户已经登录

1) return 用户正在或已经参与的测验的查询集 2) 根据您的选择、完成等过滤未响应的挑战,例如

unresponded = all_games.filter(status='unresponded')

3) 通过渲染将您想要显示的不同游戏的所有不同上下文(包括未响应的)发送到您想要的页面

return render(request, "games.html", context)

4) 在您的 games.html 页面中显示游戏。