我有 django 1.4,我正在关注一个使用旧版本 django 的教程。它是一个简单的教程,它创建一个以 Page 作为模型的 wiki 应用程序。
问题是与表单中的 POST 方法对应的视图函数没有被调用。
这是 urls.py 中的内容:
url(r'^wikicamp/(?P<page_name>[^/]+)/edit/$', 'wiki.views.edit_page'),
url(r'^wikicamp/(?P<page_name>[^/]+)/save/$', 'wiki.views.save_page'),
url(r'^wikicamp/(?P<page_name>[^/]+)/$', 'wiki.views.view_page'),
这是模板edit.html的内容:
<from method = "get" action="/wikicamp/{{page_name}}/save/">
{% csrf_token %}
<textarea name = "content" rows="20" cols="60">
{{content}}
</textarea>
<br/>
<input type="submit" value="Save Page"/>
</form>
<a href="/wikicamp/{{page_name}}/save/">this is link to save</a>
这是views.py中的内容:
def edit_page(request, page_name):
try:
page = Page.objects.get(pk=page_name)
content = page.content
except Page.DoesNotExist:
content = ""
return render_to_response("edit.html", {"page_name":page_name, "content":content}, context_instance=RequestContext(request))
def save_page(request, page_name):
return HttpResponse("You're looking at the page %s." % page_name)
我最初遇到了与 csrf 相关的错误,然后我尝试了https://docs.djangoproject.com/en/dev/ref/contrib/casrf/中提供的所有修复程序,并遵循了许多与 POST 和 django 相关的 stackoverflow 问题。现在,当我单击“保存页面”按钮时,什么也没有发生,什么都没有!甚至没有从表单发送任何请求(使用 firebug 跟踪 HTTP 请求和响应)