我是新来的Django,我仍然要去跟其功能交手。 我创建和Django 1.4.2非常简单的项目,其中有索引页,你进入这里提交后显示您的输入(代码如下)的东西,结果页面简单的形式。
提交后,我得到错误403以下消息:
A {%csrf_token%}在模板中使用,但上下文没有提供价值。 这通常是不使用的RequestContext造成的。 warnings.warn(“A {%csrf_token%}在模板中被使用,但上下文没有提供的值。这通常是通过不使用的RequestContext引起的。”)
的index.html
<!DOCTYPE html>
<head>
<title>Index page</title>
</head>
<body>
<div id="header">Welcome to index page</div>
<div id="content">
<p>Enter your name</p>
<form action="/result/" method="post" accept-charset="utf-8">{% csrf_token %}
<input type="text" name="answer">
<input type="submit" value="Send!">
</form>
</div>
</body>
result.html
<!DOCTYPE html>
<head>
<title>Result page</title>
</head>
<body>
<div id="header">Here is the result</div>
<div id="content">
<p>Your name is: {{ answer }}</p>
</div>
</body>
views.py
from django.http import HttpResponse
from django.shortcuts import render_to_response
from django.template import RequestContext
def index(request):
return render_to_response('index.html')
def result(request):
p = request.POST['answer']
return render_to_response('result.html', {'answer': p}, context_instance=RequestContext(request))
我已经研究过的文档和互联网上的各种例子,但我不明白我在做什么错。 如果我在settings.py禁用django.middleware.csrf.CsrfViewMiddleware,我得到我想要的东西,但是这不是我要找的答案。
我很欣赏从有经验的Django忍者帮助:-)