2010-12-10 70 views
0

運行我不知道什麼是錯的..HTTP POST到Django的在谷歌應用程序引擎

在我的html文件,我做了以下內容:

$.post("some_page", { 
    param1: "something" , "param2": "something 2" 
    }, function(data) { 
    alert(data) 
    }, "json"); 

蟒文件qwerty.py到我張貼我有以下幾點:

def some_page(request): 

param1 = request.POST['param1'] 
param2 = request.POST['param2'] 

在urls.py文件給我的下一行:

urlpatterns = patterns('', 
    (r"^some_page$", "views.qwerty.some_page"),) 

使得HTTP POST之後有內部服務器錯誤,說請求不包含的param1既不param2的(I試圖改變的參數的順序),點到行:

param1 = request.POST['param1'] 
在QWERTY

。 py文件..我做錯了什麼?你能指點我嗎?

在此先感謝, Serhiy。

回答

0

請確保您不像上面的'param2'那樣引用$ .post數據字典中的鍵。

$.post("some_page", { 
     param1: "something", 
     param2: "something 2" 
    }, function(data) { 
     alert(data) 
    }, "json"); 

此外,當你試圖獲得價值了Python中的字典,你應該要麼/包裝在一個嘗試except子句或使用相應的工具來做。例如:

param1 = request.POST.get('param1') 

這將確保如果param1不存在request.POST異常不提高。它會改爲返回None

這可能是使上面的一些變化解決了你的問題 - 我希望。不過,當你只有一張照片時,有時很難準確幫忙。

+0

我試圖改變,並且有一個錯誤:異常類型:\t類型錯誤 異常值:\t 「instancemethod」對象是unsubscriptable。該POST仍然不包含任何參數... – Serhiy 2010-12-10 10:25:50