2010-07-02 18 views
3

我正在通過命令行卷曲以下請求:Django的POST子字典

curl -X POST http://localhost:8000/api/places/ -vvvv -d "place[name]=Starbucks" 

然而,當我試圖通過調用

request.POST.getlist('place') 

訪問參數我得到一個空數組作爲響應。我如何訪問可以傳遞給ORM的子字典?

謝謝,

傑米

+0

什麼request.POST樣子? – sdolan 2010-07-02 18:49:11

+0

2010-07-02 18:58:25

回答

7

HTTP數據元素不能具有子元素。您發佈的數據(如querydict中所示)已被解釋爲包含關鍵「place [name]」和值「Starbucks」的單個元素。所以你可以用request.POST["place[name]"]得到它。

+0

啊,這就是我所害怕的。謝謝。我來自PHP背景,所以我習慣了$ _POST ['place'] ['name']。謝謝! – 2010-07-02 19:34:33

0

它看起來像你發送一個字符串,在這種情況下嘗試:

request.POST.get('place[name]') 

如果您在模擬你應該發送「地方=星巴克」下拉列表中,但是如果你要發送一個數組你應該嘗試將你的字符串轉換爲你的python腳本中的一個數組。

在你的命令,你可以得到的 「-X POST」 順風車作爲參數-d已經是一個HTTP POST:

curl --help 
... 
-d/--data <data> HTTP POST data (H) 

捲曲手冊: http://curl.haxx.se/docs/manual.html