2012-08-04 17 views
0

我已經開始使用tastypie發佈數據到django的應用程序。但是,我收到了一個http 403禁止的錯誤。你能幫我繞過這個錯誤嗎?帶數據的Django帖子返回一個HTTP 403禁止的錯誤

編輯: 我得到這個錯誤是由於我的views.py

</script> 
      </head> 
      <body> 
       <div id="summary"> 
        <h1>MultiValueDictKeyError at /api/recipes/item_new/</h1> 
        <pre class="exception_value">&#39;Key \&#39;data\&#39; not found in &lt;QueryDict: {u\&#39;{ data:\\n  {\\n   name: &quot;Something&quot;,\\n   content: &quot;Anything&quot;\\n  }\\n}\\n\&#39;: [u\&#39;\&#39;]}&gt;&#39;</pre> 
        <table class="meta"> 
         <tr> 
          <th>Request Method:</th> 
          <td>POST</td> 
         </tr> 
         <tr> 
          <th>Request URL:</th> 
          <td>http://localhost:8000/api/recipes/item_new/</td> 
         </tr> 
+0

這可能是一些事情。是否沒有來自應用程序服務器的日誌可以檢查並提供堆棧跟蹤? apache/uwsgi/gunicorn logs – 2012-08-04 21:28:51

+0

我正在使用Pycharm。你知道如何獲得堆棧跟蹤嗎? – 2012-08-04 21:33:33

回答

1

你打一個CSRF錯誤?您需要將carf_exempt裝飾器添加到您的視圖中。

+0

增加,但仍然我得到的錯誤是http 500內部服務器。有趣的是,如果我將視圖方法更改爲只有[def item_new(request): 返回HttpResponse(「你做了它」)]的基本方法,它就可以工作。所以,我認爲,我的數據發佈方式或我的「item_new」方法都有問題。你怎麼看 ? – 2012-08-05 06:57:55

+0

什麼是500錯誤/它發生了什麼?你正在調用'postdata'的所有密鑰是否存在?您可能需要創建一個Django表單來處理數據的驗證。 – Tom 2012-08-06 15:27:44

+0

好的,謝謝,我真的得到了我的一天.... – 2012-08-06 16:50:43

0

根據您的urls.py你應該真正得到404這個URL /api/recipes/item_new 另外,你的資源被命名爲recipes所以你的第一個和第二個網址是確切的,這意味着第二個將永遠不會被調用。

url(r'^api/', include(recipe_resource.urls)), 
url(r'^api/recipes/$', views.item_new()), 

嘗試在這裏交換臺的順序和調整ITEM_NEW網址,如下所示

url(r'^api/recipes/item_new$', views.item_new()), 
url(r'^api/', include(recipe_resource.urls)), 
+0

我試過了,沒有更改。我的通話方式如何,對嗎? HTTP://本地主機:8000/API /食譜/ ITEM_NEW格式= {JSON數據: { 名稱: 「東西」, 內容: 「任何東西」 }} 我 – 2012-08-05 02:09:30