跳转到主要内容

Django contrib.messages增强版

项目描述

https://badge.fury.io/py/django-stored-messages.png https://travis-ci.org/evonove/django-stored-messages.png?branch=master https://coveralls.io/repos/evonove/django-stored-messages/badge.png

Django contrib.messages增强版

该应用与Django的messages框架django.contrib.messages)无缝集成,但用户可以决定哪些消息需要存储在数据库后端并在会话中保持可用。

功能

  • django.contrib.messages无缝集成

  • 所有功能都在一个mixin中,您可以将它附加到现有的存储

  • 存储的消息存档在数据库或Redis实例中

  • 用户可以配置需要持久化的消息级别

  • REST API用于检索和标记消息为已读(需要djangorestframework

  • 信号API用于对消息活动执行操作

兼容性表

  • Python 2.7, 3.4, 3.5

  • Python Django 1.8, 1.9

  • Django Rest Framework >= 3.3(如果您想使用REST端点的话)

您使用的是更早版本的Django或Django Rest Framework吗?即使不再支持,也有一个旧版本的stored_messages可用。无论如何,计划迁移到新版本。

文档

完整文档在http://django-stored-messages.rtfd.org。它包括如果您从旧版本的stored_messages迁移的迁移说明

快速入门

遵循django.contrib.messages的启动说明,然后安装该应用程序

$ pip install django-stored-messages

将其添加到已安装的应用程序中

INSTALLED_APPS = (
    # ...
    'stored_messages',
)

在设置中,告诉Django哪个是消息存储

MESSAGE_STORAGE = 'stored_messages.storage.PersistentStorage'

最后一步,不要忘记运行Django迁移

$ python manage.py migrate

然后在项目中通过django.contrib.messages api使用它。该应用程序提供了一些方便的消息级别,默认情况下会持久化

import stored_messages

from django.contrib import messages

# standard message
messages.add_message(request, messages.INFO, 'Hello world.')
# this will be persisted and marked as 'unread'
messages.add_message(request, stored_messages.STORED_INFO, 'Hello world, to the database!')

stored_messages同样提供了相同的api,因此可以这样做

import stored_messages
stored_messages.add_message(request, stored_messages.INFO, 'Hello!')

如果您想使用标准消息级别但持久化消息,只需将以下内容添加到设置中

from django.contrib import messages

STORED_MESSAGES = {
    # persist standard infos and standard errors
    'STORE_LEVELS': (messages.INFO, messages.ERROR,),
}

迭代消息会自动将它们标记为已读(但仍然持久化)

storage = messages.get_messages(request)
for unread_message in storage:
    # unread_message could be a stored message or a "standard" Django message
    do_something_with(unread_message)

……除非您将存储标记为未使用

storage.used = False

您可以在任何时候将存储的消息标记为已读

stored_messages.mark_read(request.user, message)

想将您的消息存储在Redis而不是数据库中吗?请看这里

STORED_MESSAGES = {
    'STORAGE_BACKEND': 'stored_messages.backends.RedisBackend',
    'REDIS_URL': 'redis://localhost:6379/0',
}

示例

使用Stored Messages和AngularJS的GitHub-like通知

历史

1.0.1 (2014-04-17)

  • 修复了inbox_get()后端api上的主要错误

  • 修复了InboxSerializer以支持redis后端的消息

  • 增强测试套件

  • 添加了MessageDoesNotExist描述并返回404

1.0.0 (2014-04-01)

  • 添加了对Redis的支持的新后端架构

  • 支持广播消息

0.2.1 (2013-12-23)

  • 添加了stored_messages_count模板标签和测试

0.2.0 (2013-10-22)

  • 添加了stored_messages_archive模板标签

  • 扩展REST api

0.1.2 (2013-10-13)

  • 添加了存储消息的特定模板标签

0.1.1 (2013-10-10)

  • 修复了setup.py

0.1.0 (2013-10-08)

  • 首次发布在PyPI。

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

django-stored-messages-1.4.0.tar.gz (20.5 KB 查看哈希

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面