首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django消息不会在重定向上显示,只会呈现

在Django中,消息通常用于向用户显示一些反馈信息,例如成功或失败的提示。然而,当使用重定向(redirect)时,消息通常不会自动显示。

这是因为Django的消息系统是基于会话(session)的。当我们在视图中添加一条消息时,它会存储在会话中,并在下一个请求中被显示。而重定向本质上是发送了一个新的请求,因此会话中的消息并不会立即显示出来。

要解决这个问题,我们可以使用django.contrib.messages模块提供的messages.add_message()函数来手动存储消息并在重定向后显示出来。具体步骤如下:

  1. 首先,在你的视图函数中,使用messages.add_message()函数来添加消息,例如:
代码语言:txt
复制
from django.contrib import messages

def my_view(request):
    messages.add_message(request, messages.INFO, 'This is a success message')
    return redirect('my_redirect_url')

在上述代码中,我们使用messages.INFO作为消息的级别,你也可以根据需要选择其他级别,如messages.SUCCESSmessages.WARNINGmessages.ERROR

  1. 接下来,在重定向的目标视图中,使用messages.get_messages()函数来获取存储的消息,并将其传递给模板进行显示,例如:
代码语言:txt
复制
from django.contrib import messages

def my_redirect_view(request):
    messages = messages.get_messages(request)
    return render(request, 'my_template.html', {'messages': messages})

在上述代码中,我们将获取到的消息存储在messages变量中,并将其作为上下文变量传递给模板。

  1. 最后,在模板中,使用for循环来迭代并显示消息,例如:
代码语言:txt
复制
{% for message in messages %}
    <div class="alert alert-{{ message.tags }}">
        {{ message }}
    </div>
{% endfor %}

在上述代码中,我们使用Bootstrap框架的样式来呈现消息,你也可以根据需求使用其他样式或自定义样式。

这样,当执行重定向后,你添加的消息就会被存储并显示在重定向后的页面中了。

推荐的腾讯云相关产品:腾讯云消息队列 CMQ,用于实现分布式应用程序之间的消息传递和通信,详情请参考:腾讯云消息队列 CMQ

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

django 1.8 官方文档翻译: 3-6-2 内建的中间件

如果这个新的URL存在于URLconf,这时Django重定向请求到这个新URL,否则,一开始的URL按正常情况处理。...继承自LocaleMiddleware并覆写了属性来自定义中间件发出的重定向消息中间件 class MessageMiddleware[source] 开启基于cookie或会话的消息支持。...虽然这样有助于配置不当的服务器正常显示内容,但也会导致安全问题。...如果你站点的一些页面应该以HTTP方式提供,并且不需要重定向到HTTPS,你可以SECURE_REDIRECT_EXEMPT设置中列出匹配那些url的正则表达式。...在GZipMiddleware之后,不会在压缩后的内容再去生成ETag。 尽可能放在靠上面的位置,因为APPEND_SLASH或者PREPEND_WWW设置为 True时会被重定向

95630
  • django debug_怎么调试debug

    介绍 Django框架的调试工具栏使用django-debug-toolbar库,是一组可配置的面板,显示有关当前请求/响应的各种调试信息,点击时,显示有关面板内容的更多详细信息。 应用 1....设置内部IP 调试工具栏只会允许特定的ip访问,在settings的INTERNAL_IPS中配置 INTERNAL_IPS = [ # ......语句 StaticFiles:当前界面加载的静态文件 Templates:当前界面用的模板 Cache:缓存信息 Signals:信号 Logging:当前界面日志信息 Redirects:当前界面的重定向信息...RENDER_PANELS 默认: None 如果设置为False,调试工具栏将把面板的内容保留在服务器的内存中并按需加载它们。如果设置为True,则会在每个页面内呈现面板。...这可能会降低页面呈现速度,但在多进程服务器需要这样做,例如,如果在生产中部署工具栏(不建议这样做)。 默认值None告诉工具栏自动执行正确的操作,具体取决于WSGI容器是否运行多个进程。

    1.9K20

    Django 2.1.7 使用内置messages显示通知消息

    为此,Django为匿名和经过身份验证的用户提供对基于cookie和session存储数据的消息传递框架。该消息框架允许将消息临时存储在一个请求中并检索它们以便在后续请求(通常是下一个请求)中显示。...这个消息框架的数据传递方式基本就是我一篇Django 2.1.7 redirect重定向数据传输的问题 中使用session的参数传递方式。...消息使用示例 在视图A发出一个messages消息记录,然后在视图B显示一次消息内容。...在浏览器访问http://127.0.0.1:8000/assetinfo/send_alert_msg则自动重定向显示消息如下: ?...说明消息是一次性的,但是如果多次只发送不显示处理消息数据,则会在cookie或者session存储后端中堆积起来,在最后一次处理消息数据的时候一次性显示出来。

    1.6K10

    python-Django-Django 表单简介

    表单类通常是从Django中的forms.Form类派生而来。在定义表单类时,我们需要为每个要显示的表单字段定义一个类属性。...每个字段都是一个Django表单字段类的实例,用于定义该字段的类型、验证规则以及在模板中显示该字段的方式。...例如,我们可以使用label属性指定字段的标签文本,使用max_length属性指定文本字段的最大长度,使用widget属性指定该字段在模板中的呈现方式。...在模板中显示表单在Django中,我们可以使用模板系统来渲染表单并在Web页面中显示它们。为了在模板中显示表单,我们需要将表单类实例化,并将其作为上下文变量传递到渲染模板的函数中。...最后,我们将用户重定向到成功页面。如果HTTP方法不是POST,我们实例化表单类,并将其作为上下文变量传递给渲染模板的函数。

    1.5K20

    Django内置的通用类视图CBV及示例

    本文链接:https://blog.csdn.net/bbwangj/article/details/98720627 Class-based views是Django为解决建站过程中的常见的呈现模式而建立的...具有如下几个原则: 代码越少越好 永远不要重复代码 View应当只包含呈现逻辑, 不应包括业务逻辑 保持view逻辑清晰简单 不要将CBVs用作403, 404, 500的错误处理程序 保持mixin简单明了..."/login/" TemplateView 显示Django HTML template 一般网站中使用模板显示的页 ListView 显示对象列表 文章列表页 DetailView 显示对象详情 文章详细页...():获取此视图的对象列表.必须是可迭代或者可以使查询集.默认返回queryset属性.可以通过重写该方法实现动态过滤.让这种方式能够工作的关键点,在于当类视图被调用时,各种有用的对象被存储在self,...显示表单的视图,验证错误时,重新显示表单并显示错误信息;成功时,重定向到一个新的URL.

    3.2K10

    python-Django-表单基础概念

    Django中,表单是由Django表单框架处理的,它允许您轻松地创建HTML表单并处理表单数据。定义表单类在Django中,表单类是定义表单字段和验证规则的Python类。...在模板中显示表单要在模板中显示表单,您需要将表单类实例化,并将其传递到模板上下文中。然后,在模板中使用Django模板语言(DTL)来呈现表单字段。...type="submit">Submit在这个示例中,我们使用form.as_p标记来呈现表单字段。...as_p标记以HTML段落()的形式显示表单字段,每个字段都有一个标签和一个表单元素。还需要注意的是,我们在表单中包含了一个csrf_token标记。...最后,我们将用户重定向到一个“感谢”页面。如果请求的HTTP方法不是POST,则说明这是第一次请求该页面,我们将表单类实例化,并将其传递到渲染模板的上下文中。

    1.2K51

    第 14 篇:交流的桥梁“评论功能”—— HelloDjango 系列教程

    这个函数位于 django.shortcuts 模块中,它的作用是对 HTTP 请求进行重定向(即用户访问的是某个 URL,但由于某些原因,服务器会将用户重定向到另外的 URL)。..., extra_tags='danger') 发送的消息被缓存在 cookie 中,然后我们在模板中获取显示即可。...会通过全局上下文自动把 messages 变量传给模板,这个变量里存储我们发送的消息内容,然后就是循环显示消息了。...比如这里 alert-{{ message.tags }},当传入的是 success 时,类名就为 alert-success,这时显示消息背景颜色就是绿色,传入的是 dangerous,则显示的就是红色...评论发布成功和失败的消息效果如下图: 显示评论内容 为了不改动已有的视图函数的代码,评论数据我们也使用自定义的模板标签来实现。

    1.7K20

    浅谈在django中使用redirect重定向数据传输的问题

    环境: python 3.6.4 django2.0.6 使用重定向redirect(‘url name’) 如果不需要传数据的话那这样就OK了 如果要传数据的话 我琢磨了半天 还是决定用session...补充知识:在django中,redirect如何传递message。 众所周知,在django中,默认的message,只能在同一个request中传递。...我觉得如果消息使用得频繁,且消息比较长时使用。 二,使用session来实现,这个实现更简单,但不可太频繁使用。 下面,就使用第二种来试试吧。...format(create_app)) 3,在前端网页中,显示此message。...以上这篇浅谈在django中使用redirect重定向数据传输的问题就是小编分享给大家的全部内容了,希望能给大家一个参考。

    1.6K10

    Django用户身份验证完成示例代码

    Django身份验证系统同时处理身份验证和授权。 简要地说,身份验证将验证用户是他们声称的身份,而授权则确定允许经过身份验证的用户执行的操作。 基本,我们将创建登录,注销,忘记密码和重置密码功能。...基本,home.html用于重定向成功的登录。 这是base.html <!...成功登录后重定向哪个URL LOGOUT_URL:用于重定向用户以注销的URL 密码修改 这些是我们更改密码的文件。...url 'password_reset_confirm' uidb64=uid token=token %} {% endblock %} password_reset_email.html模板将用于呈现发送给用户的电子邮件...如果链接有效,则显示用户密码重置表格。 创建另一个模板,并将其命名为password_reset_complete.html。

    2.6K20

    Django 2.1.7 redirect重定向数据传输的问题

    问题描述 Django 在从一个视图重定向至另一个视图的时候,需要使用return redirect('另一个视图的url') 来进行重定向,并不能像render方法一样给模板传递参数。...场景例如:从视图1传递参数提供视图2弹窗显示。...1) 编写一个存储session参数数据,然后redirect另一个视图B的视图A def session_test(request): request.session['msg']='提示消息内容...B,查看是否正常显示session的数据在模板中展示 访问视图A:http://127.0.0.1:8000/assetinfo/session_test 浏览器重定向视图B后显示如下: 5)查看Django...的日志,确认请求: [22/Aug/2019 00:05:10] "GET /assetinfo/session_test HTTP/1.1" 302 0 # 302重定向 [22/Aug/2019 00

    73920

    Django的Hello World(一)

    本文档只会跟着项目的前进进行单一的记录,不会覆盖式的把相关用法都讲明,所以相关具体内容请参考Django官方文档 中文版: https://docs.djangoproject.com/zh-hans/...由于阿里云已经被部署了一个项目,所以在未完成之前,该项目在本地编写与测试。使用的编辑器的Pycharm,使用的python版本为3.7 ?...ie=UTF-8&wd=python schema是https host是www.baidu.com port是默认端口80,因为默认,所以地址栏就省略了,如果非默认则会显示 path没有,有点尴尬。。...admin界面 PS:地址栏中的内容发生了变化,是被重定向了 下面是重定向的抓包内容:首先是301,再是302,再是200。...重定向 到此Django的Hello world就结束了

    71930

    37.Django1.11.6文档

    重定向的URL将调用'results'视图来显示最终的页面。 (3)results() 当有人对Question进行投票后,vote()视图将请求重定向到Question的结果界面。...(4)URL的反向解析 在 Django 项目中经常需要获取最终形式的 URL,这么做是为了在生成的内容中嵌入 URL(视图和素材资源网址,呈现给用户的网址,等等), 或者用于在服务器端处理导航流程(重定向等...更改密码 Django不会在user模型存储原始的(明文)密码,而只是一个哈希(完整的细节参见documentation of how passwords are managed)。 ...与一节中详述的钩型ModelAdmin方法不同,这五个方法实际被设计为从管理应用程序URL调度处理程序调用为Django视图,以呈现处理模型实例的页面CRUD操作。 ...Django在定义关系(在这种情况下,Group)的模型显示多对多字段的管理窗口小部件。

    24.3K80

    django 定时任务 django-crontab 的使用

    查看了一下相关资料, django 定时任务 django-crontab 库比较多教程和资料,虽然 star 数才五百,但是 API 接口比较简单,接入也很方便,功能也很全面,当然,也存在一此无法解决的问题...要求:cron计时通常格式(有关更多示例,请参阅 Wikipedia 和 crontab.guru) 要求:python模块路径下待执行定时任务 可选:特定于定时任务的后缀(例如,将 out/err 重定向到文件...计时通常格式 要求:python模块路径下待执行定时任务 可选:方法的位置参数列表(默认值:[]) 可选:方法的关键字参数的dict(默认值:{}) 可选:特定于定时任务的后缀(例如,将 out/err 重定向到文件...如果不了解和不熟悉可以想看: cron语法格式学习 5.添加并启动定时任务 #添加并启动定时任务 python manage.py crontab add 其它命令: #显示当前的定时任务 python...但是这个任务,在第二天时,就不会在执行啦!! 因为,CRONJOBS 生成任务时,会生成对应的哈希值(hashes),标识每个任务。

    6.4K30

    ASP.NET Core 6框架揭秘实例演示:错误页面的N种呈现方式

    对于生产环境来说,我们也希望最终用户能够根据具体的错误类型得到具有针对性并且友好的错误消息。ASP.NET提供的相应的中间件可以帮助我们将定制化的错误信息呈现出来。...(源代码) [2104]针对异常页面的重定向(源代码) [2105]基于响应状态码错误页面的呈现(设置响应内容模板)(源代码) [2106]基于响应状态码错误页面的呈现(提供异常处理器)(源代码)...为了避免一些敏感信息的外泄,客户端只会得到一个很泛化的错误消息。以如下所示的程序为例,处理根路径的请求时都会抛出一个InvalidOperationException类型的异常。...图1 默认的错误页面 有人认为浏览器虽然没有显示任何详细的错误信息,但这并不意味着HTTP响应报文中也没有携带任何详细的出错信息。...演示程序注册了一个针对根路径(“/”)的并且直接抛出异常的终结点,当我们利用浏览器访问该终结点时,这个定制的错误消息会以图4所示的形式直接呈现在浏览器

    75620

    Django 2.1.7 视图 - HttpResponse对象、子类JsonResponse、子类HttpResponseRedirect

    子类HttpResponseRedirect 当一个逻辑处理完成后,不需要向客户端呈现数据,而是转回到其它页面,如添加成功、修改成功、删除成功后显示数据列表,而数据的列表视图已经开发完成,此时不需要重新编写列表的代码...,而是转到这个视图就可以,此时就需要模拟一个用户请求的效果,从一个视图转到另外一个视图,就称为重定向。...Django中提供了HttpResponseRedirect对象实现重定向功能,这个类继承自HttpResponse,被定义在django.http模块中,返回的状态码为302。...可以看到页面重定向到访问json1的页面了。...重定向简写函数redirect 在django.shortcuts模块中为重定向类提供了简写函数redirect。

    1.3K20

    Django -- 快速测试&页面美化

    类似于管理模板文件,我们同样可以把样式文件直接放入到demo_app/static文件夹中--而不是创建另一个demo_app的子文件夹,这样做的弊端就是因为Django只会使用第一个找到的静态文件,如果你在其他应用中有一个相同名字的静态文件...,Django 将无法区分它们。...Django 为了方便我们测试,提供了django.test.Client 类,它可以充当一个虚拟的网络浏览器发挥以下作用(参考django 文档): •模拟URL的GET和POST请求并观察响应-从低级...•查看重定向链(如果有),并在每个步骤检查URL和状态代码。•测试给定的请求是否由给定的Django模板以及包含某些值的模板上下文呈现。...•走进model•一文完全解读django结构

    1.4K20
    领券