如何在Django中重定向两次?
所以我有一个主页面(/ Main)和一个允许用户与我联系的页面(让我们称它/联系人)。
用户在联系人中成功提交表单后,我想将它们重定向到Main并在页面顶部显示一个小框,表示“表单已成功提交”。 我已经能够做到这一点,通过重定向到一个类似于/ Main / Success的URL,这个URL基本上是一个传入了成功参数的主视图。
问题是,我不希望用户浏览器中的URL显示/ Main / Success。 我希望它在URL地址框中看起来像/ Main,即使用户在页面顶部看到一个额外的框。 这是为了防止人们在地址栏中简单地输入/ Main / Success,然后转到页面顶部的框。 用户只有在成功提交表单后才能看到成功框。 另外,当用户刷新带有成功框的主页面时,它应该只是再次显示主页面而没有成功框。
这是否意味着我应该重定向两次? 从/联系到/ Main /成功再次/ Main? 如果我这样做,我该如何让盒子在Main上显示? 任何想法如何解决这个问题? 自上次以来,我一直很困惑,并会非常感谢我能得到的任何帮助。
谢谢!
看看Django消息框架。 它允许您定义这种类型的消息并避免多个重定向。
您只需在模板中添加一些代码,以显示如下消息(如果有的话):
{% if messages %}
{% for message in messages %}
{{ message }}
{% endfor %}
{% endif %}
然后你可以像这样在你的视图中“发送”消息给用户:
from django.contrib import messages
messages.success(request, 'Form submitted successfully')
有关更多详细信息(例如,哪些类型的消息以及模板中消息的属性)请查看上述文档。
链接地址: http://www.djcxy.com/p/89117.html