2013年1月1日火曜日

Djangoチュートリアル エラーばっかり so may error of CSRF

djangoを使ってみた

このサイトをお手本に
Djangoチュートリアル(後編)
http://codezine.jp/article/detail/4264

でもエラーばっかり

ここのサイトがめちゃくちゃやくにたった
http://blog.livedoor.jp/ichsod/archives/1674798.html

助かったー

stackoverflowも参考にしました。
this page in stackoverflow is soooo helpful.
http://stackoverflow.com/questions/5922773/csrf-token-missing-or-incorrect-even-though-i-have-csrf-token


How to solve the problem of CSRF error....

Sometimes you've got this kind of error.
Forbidden (403)
CSRF verification failed. Request aborted.

You need this kind of addition.

view.py
-----
..............

from django.template import RequestContext
from django.shortcuts import render_to_response

def item_page_display(request,item_id):
  item=get_object_or_404(Item,id=item_id)

  initialData = {'item':item}  #<---
  csrfContext = RequestContext(request,initialData)  # <---
  return render_to_response('page/item.html',csrfContext)  # <---

..............
----
item.html
-----

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <title>{{item.item_name}}</title>
</head>
<body>
<center>
商品コード:{{item.item_code}}<br>
商品名:{{item.item_name}}<br>
価格:{{item.price}}円<br>
<br>
<form action="/cart" method="POST">{% csrf_token %}   # <---
購入個数:<input type="text" name="buy_num" value="1"><br>
<br>
<input type="submit" value="買い物かごに入れる">
<input type="hidden" name="item_id" value="{{item.id}}">
</form>
</center>
</body>
</html>

-----
you need {% csrf_token %}  inside <form .... method="POST">....</form>

0 件のコメント:

コメントを投稿