3

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

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

但是,当我尝试通过调用访问参数时

request.POST.getlist('place')

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

谢谢,

杰米

4

2 回答 2

7

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

于 2010-07-02T19:32:12.727 回答
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

于 2010-07-02T19:34:34.840 回答