Python 如何在Django中重定向两次?

Python 如何在Django中重定向两次?,python,django,Python,Django,所以我有一个主页,一个允许用户与我联系的页面,让我们称之为/Contact 当用户在Contact中成功提交表单后,我想将他们重定向到Main,并在页面顶部显示一个小框,表示表单已成功提交。我已经能够做到这一点,通过重定向到一个类似于/Main/Success的URL,它基本上是传递了Success参数的主视图 问题是,我不希望用户浏览器中的URL显示/Main/Success。我希望它在URL地址框中看起来像/Main,即使用户在页面顶部看到一个额外的框。这是为了防止人们在地址栏中简单地键入/

所以我有一个主页,一个允许用户与我联系的页面,让我们称之为/Contact

当用户在Contact中成功提交表单后,我想将他们重定向到Main,并在页面顶部显示一个小框,表示表单已成功提交。我已经能够做到这一点,通过重定向到一个类似于/Main/Success的URL,它基本上是传递了Success参数的主视图

问题是,我不希望用户浏览器中的URL显示/Main/Success。我希望它在URL地址框中看起来像/Main,即使用户在页面顶部看到一个额外的框。这是为了防止人们在地址栏中简单地键入/Main/Success,然后进入顶部有框的页面。用户只有在成功提交表单后才能看到“成功”框。此外,当用户刷新主页时,如果主页上有成功框,则只需再次显示主页而不显示成功框

这是否意味着我应该重定向两次?是否再次从/联系到/Main/成功到/Main?如果我这样做了,我如何让盒子显示在主屏幕上?有没有办法解决这个问题?自从上次以来,我一直很困惑,非常感谢能得到的任何帮助

谢谢

看一看。它允许您仅定义此类消息,并避免多次重定向

您所要做的就是在模板中添加一些代码,以便在出现以下情况时显示消息:

{% if messages %}
    {% for message in messages %}
        {{ message }}
    {% endfor %}
{% endif %}
from django.contrib import messages
messages.success(request, 'Form submitted successfully')
然后,您可以向视图中的用户发送消息,如下所示:

{% if messages %}
    {% for message in messages %}
        {{ message }}
    {% endfor %}
{% endif %}
from django.contrib import messages
messages.success(request, 'Form submitted successfully')
有关更多详细信息,例如,模板中有哪些类型的消息以及消息具有哪些属性,请查看上述文档。

查看。它允许您仅定义此类消息,并避免多次重定向

您所要做的就是在模板中添加一些代码,以便在出现以下情况时显示消息:

{% if messages %}
    {% for message in messages %}
        {{ message }}
    {% endfor %}
{% endif %}
from django.contrib import messages
messages.success(request, 'Form submitted successfully')
然后,您可以向视图中的用户发送消息,如下所示:

{% if messages %}
    {% for message in messages %}
        {{ message }}
    {% endfor %}
{% endif %}
from django.contrib import messages
messages.success(request, 'Form submitted successfully')

有关更多详细信息,例如,模板中包含哪些类型的消息以及消息具有哪些属性,请查看上述文档。

谢谢Michael,这非常有用!谢谢迈克尔,这真的很有帮助!