我通过命令行cURL发出以下请求:
curl -X POST http://localhost:8000/api/places/ -vvvv -d "place[name]=Starbucks"
但是,当我尝试通过调用
来访问参数时request.POST.getlist('place')
我得到一个空数组作为回应。如何访问我可以传递给ORM的子词典?
谢谢,
杰米
答案 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)