Django消息框架

发布时间:2024年01月17日

当用户与平台进行交互时,用户可能希望告知他们操作的结果。Django有一个内置消息框架,允许你向用户显示一次性通知。
messages框架位于django.contrib.messages中,当你使用python manage.py startproject创建新项目时,它被包含在settings.py文件的默认INSTALLED_APPS列表中。

在项目的setting.py文件在中间件设置中包含一个名为django.contrib.messages.middleware.MessageMiddleware的中间件。

消息框架提供了一种向用户添加消息的简单方法。默认情况下,消息存储在cookie中(退回到会话存储),并在用户执行的下一个请求中显示它们。可以通过导入messages模块并使用简单的快捷方式添加新消息来在视图中使用消息框架,如下所示:
from django.contrib import messages
messages.error(request, 'Something went wrong')

通过使用add_message()方法或以下任何一种快捷方法创建新消息:

  • success():操作成功后显示的成功消息
  • info():提示消息
  • warning():某些操作尚未失败,但可能即将失败
  • error():操作未成功,或某些操作失败
  • debug():将在生产环境中删除或忽略的调试消息

因为消息框架应用于项目,因此应该在基础模版为用户显示消息。
编辑base.html模版

{% if messages %}
	 <ul class="messages">
		 {% for message in messages %}
			 <li class="{{ message.tags }}">
			 {{ message|safe }}
			 <a href="#" class="close">x</a>
			 </li>
		 {% endfor %}
	 </ul>
{% endif %}

messages框架包括上下文处理器django.contrib.messages.context_processors。在项目的TEMPLATES设置的context_processors列表中找到它。
将消息变量添加到请求上下文的消息。在模板中使用此变量向用户显示所有现有消息。

这里重构account应用,关于这个应用的更多内容,请查看

Django用户注册和用户配置扩展-CSDN博客


修改编辑视图以使用消息框架。
编辑account应用程序的views.py文件,导入消息

from django.contrib import messages

@login_required
def edit(request):
	 if request.method == 'POST':
	 # ...
		 if user_form.is_valid() and profile_form.is_valid():
			 user_form.save()
			 profile_form.save()
			 messages.success(request, 'Profile updated '\
			 'successfully')
		 else:
			 messages.error(request, 'Error updating your profile')
	 else:
		 user_form = UserEditForm(instance=request.user)
	 # ...

当用户成功更新其配置文件时,添加一条成功消息。如果任何表单包含无效数据,将添加一条错误消息。

关于Django消息框架更多内容,可以查阅
消息框架 | Django 文档 | Django (djangoproject.com)

文章来源:https://blog.csdn.net/Q1780020/article/details/135620057
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。