django-notifications: 类 GitHub 通知的 Django 站内提醒 app
通知内容也很简单:某人 对 某物 做了 某事,接着是该通知的 事件描述。
这个功能对于现在的在线应用来说属于非缺不可,codinn 当然也不例外。我找了一圈,只有 django-postman 较为符合要求,但它更接近与站内信(比如豆瓣的豆邮),用它来实现提醒功能既不灵活(缺少对 主谓宾结构 的支持),也显笨重。
codinn 已经在用的 django-activity-stream 挺符合要求的,它实现了类似于 GitHub 主谓宾结构 的 Public Activity。站内提醒则相当于 Private Activity,原理都一样。
想来既然没有现成的,也就不能说是 NIH 了,遂抡起袖子自己动手写了 django-notifications。
在 PyPI 上的名字是 django-notifications-hq,加 -hq
后缀是因为 django-notifications
已经被先下手了。
表结构参考 django-activity-stream 的实现,增加了两个字段 -- 事件接收者(recipient)和是否已读(readed)。使用也很简单,就 4 个 API:
-
notifications_unread
: templatetag 用来在页面上显示当前登录用户的未读提醒数目; -
Notification.objects.get().mark_as_read()
: 将某条 notification 置为已读; -
Notification.objects.mark_all_as_read(recipient)
: 将recipient
的所有 notifications 置为已读; -
notify.send(request.user, verb='created comment', action_object=comment, target=group)
:调用 notify signal 向 django-notifications 发送事件记录。
django-notifications app 放在 GitHub 上,也可以通过 PyPI 用 pip/easy_install 安装
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。