Offline addon for django.contrib messages.
django-user-messages的Python项目详细描述
django用户消息为django添加了脱机消息传递支持 消息传递框架。它通过允许在 数据库。user_messages.api.get_messages实用程序和 user_messages.context_processors.messages上下文处理器 将django的消息和我们自己的消息透明地连接在一起 因此,现有代码没有任何更改,没有 导致数据库写入。django用户消息的功能必须是 明确使用。我认为这是一个特性,而不是一个bug。
安装
- 使用pip将django-user-messages安装到您的virtualenv中。
- 将user_messages添加到INSTALLED_APPS并运行migrate。
- 将默认消息上下文处理器替换为 user_messages.context_processors.messages。上下文处理器 提供django.contrib.messages'和django用户消息' 信息。请注意,django 2.2的管理应用程序检查是否存在 默认的消息上下文处理器,因此您必须使其静音 通过将"admin.E404"添加到^{tt9}进行检查$ 设置。
- 使用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用户消息支持两个附加功能 在Django的消息框架中提供:
通过传递消息可以传递多次 deliver_once=False。必须确认这些信息 明确地。django用户消息不包含执行此操作的任何代码。
通过将字典作为 meta:
api.debug(user, 'Oww', meta={ 'url': 'http://example.com', })
为了方便起见,我们的消息具有相同的tags和level_tag 属性作为django的消息。元属性也可以在 模板:
{% 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用户消息的消息也被惰性地评估。