1

我正在处理一个询问用户姓名和电话号码的基本网页,如果成功提交,它将重定向到显示用户姓名和电话号码的页面。当我尝试提交姓名和电话号码时,我不断收到 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>
4

1 回答 1

2

我不明白您的问题标题,但是如果您收到 403,则很可能是 CSRF 错误(您会看到)。您应该发布发布的视图,而不是成功视图/模板。

{% csrf_token %}在任何 POST 表单上添加<form>标签,否则 django 会抱怨 CSRF 错误。

于 2012-10-17T02:49:04.083 回答