私は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 に関連する多くのスタックオーバーフローの質問に従いました。[ページを保存] ボタンをクリックしても何も起こりません。フォームからリクエストが送信されていない (firebug を使用して HTTP リクエストとレスポンスを追跡する)