2010-07-02 4 views
3

Я делаю следующий запрос через командную строку Волнистость:Джанго POST суб-словари

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

Однако, когда я пытаюсь получить доступ к параметрам по телефону

request.POST.getlist('place') 

я получаю пустой массив в качестве ответа. Как я могу получить доступ к подъярусу, который я могу передать в ORM?

Спасибо,

Джейми

+0

Что request.POST выглядеть ? – sdolan

+0

ответ

7

элементы HTTP данных не могут иметь вложенные элементы. Данные, которые вы опубликовали - как показано в querydict, были интерпретированы как один элемент с ключом «place [name]» и значением «Starbucks». Таким образом, вы можете получить его с помощью request.POST["place[name]"].

+0

Ах, этого я и боялся. Благодарю. Я исхожу из PHP-фона, поэтому я привык к $ _POST ['place'] ['name']. Благодаря! –

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

Смежные вопросы