跳转到主要内容

django.contrib.messages的离线插件

项目描述

django-user-messages向Django的消息框架添加离线消息支持。它通过允许将消息保存到数据库中来实现这一点。user_messages.api.get_messages实用程序和user_messages.context_processors.messages上下文处理器透明地将Django的消息和我们的消息合并成一个列表,因此现有代码无需任何更改即可正常工作,且不会导致数据库写入。django-user-messages的函数必须显式使用。我认为这是一个特性,而不是错误。

安装

  • 使用pip在虚拟环境中安装django-user-messages

  • user_messages添加到INSTALLED_APPS中并运行migrate

  • user_messages.context_processors.messages 消息处理器添加到默认消息处理器之后的位置。Django的admin应用会检查后者的存在,因此您不能直接删除它(除非您想禁用"admin.E404"系统检查)。

  • 使用 user_messages.api 的方式与使用 django.contrib.messages 相同,但您需要传递用户模型或ID作为第一个参数,而不是当前请求。

用法

基本上与Django的消息框架相同

from user_messages import api

api.info(user, 'Hey there')
api.warning(user, 'Stop this')
api.error(user, 'Not nice!')

# Passing the ID is also possible; the user instance does not
# have to be instantiated at all:
api.success(user.id, 'Yay!')

django-user-messages的消息支持Django消息框架中不支持的两种附加功能

  • 通过传递 deliver_once=False,可以将消息传递多次。这些消息必须被显式确认。django-user-messages不包含执行此操作的代码。

  • 可以通过传递字典作为 meta 来附加额外的数据

    api.debug(user, 'Oww', meta={
        'url': 'http://example.com',
    })

为了方便,我们的消息具有与Django消息相同的 tagslevel_tag 属性。元属性也可以在模板中访问

{% if messages %}
  <ul class="messages">
  {% for message in messages %}
    <li class="{{ message.tags }}".>
      {% if message.meta.url %}<a href="{{ message.meta.url }}">{% endif %}
      {{ message }}
      {% if message.meta.url %}</a>{% endif %}
    </li>
  {% endfor %}
  </ul>
{% endif %}

django-user-messages的消息也是惰性评估的。

项目详情


下载文件

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

源分发

django_user_messages-1.1.0.tar.gz (7.5 kB 查看哈希值)

上传时间

构建分发

django_user_messages-1.1.0-py3-none-any.whl (9.7 kB 查看哈希值)

上传时间 Python 3

由以下赞助

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