gpt4 book ai didi

python - Django HttpResponseRedirect

转载 作者:IT老高 更新时间:2023-10-28 21:16:15 25 4
gpt4 key购买 nike

我已经创建了一个基本的联系表单,当用户提交信息时,它应该重定向到“谢谢”页面。

views.py:

def contact(request):
# if no errors...
return HttpResponseRedirect('/thanks/')

urls.py:

(r'^contact/$', contact),
(r'^contact/thanks/$', contact_thanks),

两个页面都使用硬编码的 URL。但是,当我在 /contact/ 上提交表单时,它会重定向到 /contact(没有结束斜杠),这是一个不存在的页面(404 或错误页面告诉我需要一个斜线)。

它没有正确重定向的原因是什么,我该如何解决这个问题?

更新: return HttpResponseRedirect('/contact/thanks/') 是我现在拥有的,但问题是提交按钮(使用 POST)确实不重定向到 URL - 它根本不重定向。

最佳答案

应该重定向的不是 POST 按钮,而是 View 。

如果没有另外指定,表单(HTML 表单标签)会发布到相同的 URL。如果表单在/contact/上,它会在/contact/上发布(带或不带斜线,都是一样的)。

认为您应该重定向到谢谢。来自文档:

def contact(request):
if request.method == 'POST': # If the form has been submitted...
form = ContactForm(request.POST) # A form bound to the POST data
if form.is_valid(): # All validation rules pass
# Process the data in form.cleaned_data
# ...
return HttpResponseRedirect('/thanks/') # Redirect after POST
else:
form = ContactForm() # An unbound form

return render_to_response('contact.html', {
'form': form,
})

/thanks/ 更改为 /contact/thanks/ 即可。

关于python - Django HttpResponseRedirect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5823464/

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