Django 的通知系统
项目描述
Django NotifyX 是一个可重用的应用程序,它将通知系统功能添加到您的 Django 应用程序中。
- 它的灵感来自django-notifications,主要区别包括:
一次多用户通知。
通知更新的不同方法。
尝试根据通知类型以不同方式格式化通知时,麻烦更少。
AJAX 支持一切。
还有很多。
这只是让事情尽快工作的快速指南。深入了解细节..阅读文档
如何安装
下载包
可能最好的安装方法是使用PIP:
$ pip install django-notify-x
如果您想保持在应用程序的最前沿:
$ git clone https://github.com/v1k45/django-notify-x.git $ cd django-notify-x $ python setup.py install
在你的项目上安装它
在你的 python 环境中安装django-notify-x之后。您必须在项目settings.py文件中输入相同的条目:
INSTALLED_APPS = ( ... 'your.other.apps', ... 'notify', )
然后是urls.py文件中的一个条目:
urlpatterns = ( url(r'^notifications/', include('notify.urls', 'notifications')), )
然后运行迁移:
$ python manage.py migrate notify
然后collectstatic以确保您已经复制了用于 AJAX 功能的 JS 文件:
$ python manage.py collectstatic
你已经成功安装了django-notify-x!
发送通知
向单个用户发送通知:
from notify.signals import notify
# your example view
def follow_user(request, user):
user = User.objects.get(username=user)
...
dofollow
...
notify.send(request.user, recipient=user, actor=request.user
verb='followed you.', nf_type='followed_by_one_user')
return YourResponse
像馅饼一样容易,不是吗?
向多个用户发送通知:
from notify.signals import notify
# your example view
def upload_video(request):
...
uploadvideo...
...
video = VideoUploader.getupload()
followers = list(request.user.followers())
notify.send(request.user, recipient_list=followers, actor=request.user
verb='uploaded.', target=video, nf_type='video_upload_from_following')
return YourResponse
只需将收件人更改为收件人列表并将通知发送给您想要的任意数量的用户!
通知连接支持
通知串联是您在阅读Bob 等通知时看到的内容,其他 64 人喜欢您的状态。它提供了开发支持,但目前仅支持 Python3。
如果您使用 Python3,则可以将此功能添加到您的应用程序中。请阅读nf_concat_support分支上的说明。
和其他东西…
最好阅读文档,而不是期望快速指南中的所有内容:)
待办事项列表
- 添加通知连接支持。
通知连接是当您阅读像Bob 和其他 18 个人在您的博文上发表评论这样的通知时 facebook 所做的。
这将需要非匿名活动流字段。
我要么删除匿名通知支持,要么找到另一种方法来实现此功能。
工作正在进行中!
将基于函数的视图转换为基于类的视图。