Django POST子词典

时间:2010-07-02 18:42:38

标签: django post dictionary request django-piston

我通过命令行cURL发出以下请求:

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

但是,当我尝试通过调用

来访问参数时
request.POST.getlist('place')

我得到一个空数组作为回应。如何访问我可以传递给ORM的子词典?

谢谢,

杰米

2 个答案:

答案 0 :(得分:7)

HTTP数据元素不能包含子元素。您发布的数据(如querydict中所示)已被解释为具有键“place [name]”和值“Starbucks”的单个元素。所以你可以使用request.POST["place[name]"]获得它。

答案 1 :(得分:0)

看起来你正在发送一个字符串,在这种情况下试试:

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

如果您正在模拟下拉列表,则应发送“place = Starbucks”,但是如果您尝试发送数组,则应尝试将字符串转换为python脚本中的数组。

在您的命令中,您可以使用“-X POST”,因为参数-d已经是HTTP POST:

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

卷曲手册: http://curl.haxx.se/docs/manual.html