Django消息框架

当用户与平台进行交互时,用户可能希望告知他们操作的结果。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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/628960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用PyTorch实现混合专家(MoE)模型

Mixtral 8x7B 的推出在开放 AI 领域引发了广泛关注&#xff0c;特别是混合专家&#xff08;Mixture-of-Experts&#xff1a;MoEs&#xff09;这一概念被大家所认知。混合专家(MoE)概念是协作智能的象征&#xff0c;体现了“整体大于部分之和”的说法。MoE模型汇集了各种专家模型…

CMU15-445-Spring-2023-Project #4 - Concurrency Control

前置知识&#xff0c;参考上一篇博客&#xff1a;CMU15-445-Spring-2023-Project #4 - 前置知识&#xff08;lec15-20&#xff09; 通过添加一个锁管理器在 BusTub 中支持事务&#xff0c;然后将其用于并发查询执行。锁管理器将支持五种锁模式下的表锁和元组锁&#xff1a;int…

「解析」Jetson配置 git服务

这两天感冒了在家休养&#xff0c;想着把之前买的 Jetson 开发板用起来&#xff0c;买Jetson的初衷就是用来学习Linux系统&#xff0c;顺道可以部署算法&#xff0c;以及一些其他需求&#xff0c;相比树莓派而言&#xff0c;Jetson开发相对更贵&#xff0c;但是其配备了英伟达的…

电子学会C/C++编程等级考试2023年09月(八级)真题解析

C/C++编程(1~8级)全部真题・点这里 第1题:最短路径问题 平面上有n个点(n<=100),每个点的坐标均在-10000~10000之间。其中的一些点之间有连线。 若有连线,则表示可从一个点到达另一个点,即两点间有通路,通路的距离为两点间的直线距离。现在的任务是找出从一点到另一…

详细讲解Python中的aioschedule定时任务操作

目录 前言1. 基本概念2. 基本API3. Demo 前言 如果下面的函数库无法执行&#xff0c;出现类似&#xff1a;&#xff08;前提是python3.7以上&#xff09; AttributeError: module ‘asyncio‘ has no attribute ‘run‘请检查run是否可跳转&#xff0c;如果无法跳转&#xff…

一般拓扑学

一般拓扑 度量空间与拓扑空间度量空间 Метрическое пространство闭集 Закрытое множество拓扑空间 Топологическое пространство 连续映射 Непрерывное отображение同胚 Гомеом…

element plus 可选择树形组件(el-tree) 怎样一键展开/收起?实现方法详解

实现代码&#xff1a; 按钮&#xff1a; <el-button click"takeall" style"height: 24px">{{zhanstatus % 2 ! 0 ? "收起所有" : "展开所有"}} </el-button> 组件&#xff1a; <el-form-item label"可选择菜单…

大数据知识点

Spark&#xff1a; Spark RDD的概念&#xff1a; RDD是Spark中最基本的数据抽象&#xff0c;是一个不可变、可分区、里面的元素可并行计算的集合。它代表一个只读的分区记录集合&#xff0c;每个RDD可以分成多个分区&#xff0c;每个分区就是一个数据集片段&#xff0c;并且一…

harbor https

harbor https部署 准备docker-compose安装https 证书harbor安装访问harbor推镜像到harbor 准备 192.168.112.99&#xff0c;harbor&#xff0c;centos7 192.168.112.3&#xff0c;测试机&#xff0c;centos7 docker版本&#xff1a;docker-ce 20.10.16&#xff08;部署参考&a…

Redis主从+哨兵集群(基于CentOS-8.0)高可用部署方案

目录 一、环境描述 二、Redis 主从集群部署 2.1 Redis下载 2.2 Redis解压 和移动文件 2.4 编译、安装Redis 2.6 新建 bin 和 etc 文件夹 2.7 分发Redis 2.8 配置 2.8.1 主节点配置 2.8.2 从节点配置 2.9 启动Redis服务 2.10 验证主从服务 2.11 查看节点角色信息 2…

有序矩阵中第 K 小的元素

题目链接 有序矩阵中第 K 小的元素 题目描述 注意点 每行和每列元素均按升序排序找到一个内存复杂度优于 O(n) 的解决方案 解答思路 使用二分查找&#xff0c;思路为&#xff1a; &#xff08;1&#xff09;因为左上角的元素值更小&#xff0c;右下角的元素值更大&#xf…

初识 Elasticsearch 应用知识,一文读懂 Elasticsearch 知识文集(5)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

【Mybatis】说一下 mybatis 的一级缓存和二级缓存

​ &#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Mybatis ⛳️ 功不唐捐&#xff0c;玉汝于成 ​ 目录 前言 正文 一级缓存&#xff08;Local Cache&#xff09;&#xff1a; 范围&#xff1a; 生命周期&#xff1a; 默认开启&…

C++实战Opencv第一天——win11下配置vs,opencv环境和运行第一个c++代码(从零开始,保姆教学)

OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库&#xff0c;它提供了大量的通用算法和功能&#xff0c;用于处理图像和视频数据。C 通常提供比 Python 更高的执行速度&#xff0c;对于需要高性能处理的任务&#x…

椋鸟C语言笔记#34:文件的随机读写、文件读取结束或失败的判定、缓冲区

萌新的学习笔记&#xff0c;写错了恳请斧正。 目录 文件的随机读写 fseek 使用实例 ftell 使用实例 rewind 文件读取结束或失败的判定 feof ferror 典型使用方式 文件缓冲区 fflush 文件的随机读写 文件的随机读写是指我们可以控制文件位置指示器&#xff08;光标…

QT 文本框的绘制与复选框组键

.cpp文件 #include "widget.h" #include "ui_widget.h"#include<QDebug> Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//更改窗口标题setWindowTitle("我爱xyy");//更改图标setWindow…

使用VSCode内的jupyter编写R语言:绘制中国省份地区热力图

R语言绘制中国省份地区热力图教程 1、R语言的安装和编辑器的选择 对于一门从未接触过的编程语言&#xff0c;相信大家的吐槽点和我一样&#xff1a;又要安装软件&#xff0c;配置环境&#xff01;其实R语言的安装和环境配置并不复杂&#xff0c;只需要安装两部分内容&#xf…

IC验证——perl脚本ccode_standard——c代码寄存器配置标准化

目录 1 脚本名称 2 脚本路径 3 脚本参数说明 4 脚本操作说明 5 脚本代码 1 脚本名称 ccode_standard 2 脚本路径 /scripts/bin/ccode_standard 3 脚本参数说明 次序 参数名 说明 1 address (./rfdig&#xff1b;.&#xff1b;..&#xff1b;./boot) 指定脚本执行路…

【小笔记】用tsai库实现Rocket家族算法

2024.1.16 Rocket家族算法是用于时间序列分类的强baseline&#xff08;性能比较参考【小笔记】时序数据分类算法最新小结&#xff09;&#xff0c;Rocket/MiniRocket/MultiRocket官方都有开源实现&#xff0c;相比较而言&#xff0c;用tsai来实现有三个好处&#xff1a;1是快速…

WPF应用程序生存期以及相关事件

WPF 应用程序的生存期会通过 Application 引发的几个事件来加以标记&#xff0c;相关事件对应着应用程序何时启动、激活、停用和关闭。 应用程序生存期事件 • 独立应用程序(传统风格的 Windows 应用程序&#xff0c;这些应用程序作为要安装到客户端计算机并从客户端计算机运…