用Django_notifications实现网站消息通知

本文详细介绍了如何在Django项目中使用django-notifications库搭建通知系统,包括安装、配置、数据迁移、通知的生成、前端显示数量、未读转已读以及已读通知的显示和删除等操作。同时,文章提供了实用的代码示例,帮助开发者快速理解和应用。

前言

        本文章记录在网站搭建过程中使用django_notifications的方法,使用的是前后端不分离的方法,完全作为记录以方便日后浏览使用,故仅供浏览者参考使用。

        以下是本篇文章正文内容


目录

前言

一、准备工作

1.安装django-notifications:

2.在项目settings文件中注册app

3.在根路由中写入路径

4.数据迁移

二、基本使用

1. 生成通知

2. 前端显示数量

3. 前端显示未读通知

4. 未读变已读

三、灵活使用

1. 软删除

2. 前端显示已读通知

总结

Everything is going smoothly


一、准备工作

1.安装django-notifications

(env) > pip install django-notifications-hq

2.在项目settings文件中注册app

objects_web/settings.py

...
INSTALLED_APPS = [
    ...
    'notifications',
    ...
]

3.在根路由中写入路径

objects_web/urls.py

...
import notifications.urls

urlpatterns = [
    ...
    # 通知
    path('inbox/notifications/', include(notifications.urls, namespace='notifications')),
    ...
]
...

4.数据迁移

(env) > python manage.py migrate

二、基本使用

1. 生成通知

你可以在任意的地方导入并发送消息

from notifications.signals import notify

notify.send(actor, recipient, verb, action_object, 
target, level, description, public,timestamp, **kwargs)

上面是完整的语法,参数分别为:

  • actor(发件人):任何类型的对象。(必需)如果打算使用关键字参数,要使用sender
  • recipient(收件人): 一组或一个用户查询集或列表的用户(必需的)。
  • verb(动作): 一个字符串(必需的)。
  • action_object:任何类型的对象(可选的)。
  • target(目标):任何类型的对象(可选的)。
  • level(等级):Notification.LEVELS ('success', 'info', 'warning', 'error') 之一(可选的)。
  • description(描述): 一个字符串(可选的)。
  • public(公共的):一个布尔值(默认值=True)(可选的)。
  • timestamp(时间戳)

 其中,发件人(actor),收件人(recipient),动作(verb)这三项是在使用时必须传入的,其他项可根据实际情况使用。

我在项目根部录下创建了一个notifications.py文件,用来放通知功能相关的代码

然后把发送通知的方法封装成了一个函数,直接上代码:

objects_web/notification.py


from notifications.signals import notify

def send_notifications(actor, verb, recipient, target=None, 
                       description=None, **kwargs):
    """
        这里原本放的是上文各个参数的说明
    """
    notify.send(sender=actor,
                recipient=recipient,
                verb=verb,
                target=target,
                description=description
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值