cityweekend

面向国内的外国人的网站,也是用django开发的 ...

↑我也要推荐

django-notifications: 类 GitHub 通知的 Django 站内提醒 app

发布时间:2012-07-26 14:36:06, 关注:+6893, 赞美:+11, 不爽:+7

原始出处: Yang Yubo's Life @ Refactoring

GitHub 站内提醒的功能非常简单实用,当有人向你发起 pull request 的时候,登上 GitHub 会收到站内通知,在右上角还会显示未读的通知数目。

通知内容也很简单:某人某物 做了 某事,接着是该通知的 事件描述

这个功能对于现在的在线应用来说属于非缺不可,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 安装

如果你觉得本站对你有帮助,欢迎向本站赞助 :P

使用支付宝捐赠

Copyright© Python4cn(news, jobs) simple-is-better.com, 技术驱动:powered by web.py 空间主机:Webfaction

版权申明:文章转载已注明出处,如有疑问请来信咨询。本站为 python 语言推广公益网站,与 python 官方没有任何关系。

联系/投搞/留言: en.simple.is.better@gmail.com 向本站捐赠