gpt4 book ai didi

POST 表单提交后 Django 显示消息

转载 作者:行者123 更新时间:2023-12-03 13:50:24 27 4
gpt4 key购买 nike

我有一个带有 POST 表单的页面,该页面的操作设置为某个 url。
即假设此页面 url 是 /form_url/ :

..


/submit_url/ 中的 View 处理表单数据。在此之后,我想返回带有成功消息的表单的同一页面。
在处理 POST 表单的 View 中,我使用 HttpResponseRedirect ,以便从浏览器“清除”表单数据。
但是这样我就无法在表单页面中显示消息,除非我执行以下操作:

return HttpResponseRedirect("/form_url/?success=1")

然后在模板中检查这个参数。我不喜欢这种方式,因为如果用户刷新页面,他仍然会看到成功消息。

我注意到在 django 管理站点中,对象的删除/添加在 POST 提交后确实使用了重定向,并且仍然以某种方式显示成功消息。
如何?

我已经简要地看到了 django“消息”应用程序,但我想先了解它是如何工作的。

最佳答案

Django 管理员使用 django.contrib.messages ,你可以这样使用它:

在您看来:

from django.contrib import messages

def my_view(request):
...
if form.is_valid():
....
messages.success(request, 'Form submission successful')

在你的模板中:
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li {% if message.tags %} class=" {{ message.tags }} " {% endif %}> {{ message }} </li>
{% endfor %}
</ul>
{% endif %}

关于POST 表单提交后 Django 显示消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28723266/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com