Django HttpResponseRedirect
我已经创建了一个基本的联系表单,当用户提交信息时,它应该重定向到“谢谢”页面。
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按钮,而是视图。
如果没有另外指定,则表单(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/
,您就完成了。