ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
**add_message(request, level, message, extra_tags='', fail_silently=False)**[[source]](https://docs.djangoproject.com/en/1.10/_modules/django/contrib/messages/api/#add_message) **添加一个message** 如果要添加一个message,请调用: ~~~ from django.contrib import messages messages.add_message(request, messages.INFO, 'Hello world.') ~~~ 还有一些便捷方法,提供了一种标准途径,以常用的标记来添加messages。这些标记通常也是作为这些消息的HTML类名: ~~~ messages.debug(request, '%s SQL statements were executed.' % count) messages.info(request, 'Three credits remain in your account.') messages.success(request, 'Profile details updated.') messages.warning(request, 'Your account expires in three days.') messages.error(request, 'Document deleted.') ~~~ **显示messages** **get_messages(request)**[[source]](https://docs.djangoproject.com/en/1.10/_modules/django/contrib/messages/api/#get_messages) 在你的模板文件中,使用如下方式编码: ~~~ {% if messages %} <ul class="messages"> {% for message in messages %} <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li> {% endfor %} </ul> {% endif %} ~~~ 如果你使用了上下文处理器,你的模板将使用一个**RequestContext**来渲染。如果不是,请确保**messages**在模板上下文中是可用的。 >[warning]即使你明知道只有一条message,你依然需要遍历整个**messages**序列,因为如果不这样的话,那么在下次请求前,message存储就没有被清空。 上下文处理器也提供了一个DEFAULT_MESSAGE_LEVELS变量,将message等级名字映射到相应的数值上: ~~~ {% if messages %} <ul class="messages"> {% for message in messages %} <li{% if message.tags %} class="{{ message.tags }}"{% endif %}> {% if message.level == DEFAULT_MESSAGE_LEVELS.ERROR %}Important: {% endif %} {{ message }} </li> {% endfor %} </ul> {% endif %} ~~~ 在模板文件外部,你可以使用[**get_messages()**](https://docs.djangoproject.com/en/1.10/ref/contrib/messages/#django.contrib.messages.get_messages): ~~~ from django.contrib.messages import get_messages storage = get_messages(request) for message in storage: do_something_with_the_message(message) ~~~ 比如,你可以获取所有的messages,然后使用[**JSONResponseMixin**](https://docs.djangoproject.com/en/1.10/topics/class-based-views/mixins/#jsonresponsemixin-example)返回它们,而不使用[**TemplateResponseMixin**](https://docs.djangoproject.com/en/1.10/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin) [**get_messages()**](https://docs.djangoproject.com/en/1.10/ref/contrib/messages/#django.contrib.messages.get_messages)将返回一个已配置的存储后端实例