我正在处理一个基本网页,询问用户的姓名和电话号码,如果成功提交,它将重定向到显示用户姓名和电话号码的页面。当我尝试提交姓名和电话号码时,我一直收到403错误。这是代码:
这是views.py中的代码:
def homeform(request):
if request.method == "POST":
form = PhoneForm(request.post)
if form.is_valid():
cd = form.cleaned_data
messages.success(request, "%s, you have recorded your phone number as %d. Thanks for the update.") %(cd["name"],cd["phone"])
return HttpResponseRedirect('/success/')
else:
form = PhoneForm()
return render_to_response('phone_form.html',{'form': form})
def success(request):
return render_to_response('success.html',{'messages': messages})
这是urls.py中的代码:
urlpatterns = patterns('',
('^home/$',homeform),
('^success/$', success),
)
以下是我在视图中用于成功功能的html文件:
<html>
<head>
<title>Success</title>
<head>
<body>
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
</body>
</html>
答案 0 :(得分:2)
我不明白你的问题标题,但如果你得到403,那很可能是CSRF错误(你会看到)。您应该发布POST的视图,而不是成功视图/模板。
在任何POST表单的{% csrf_token %}
标记内添加<form>
,否则django会抱怨CSRF错误。