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