Я отправляю некоторые объекты javascript в виде массива объектов для просмотра django через ajax. Объект выглядит так:
[{'oid':'id1','oiid':'iid1'},{'oid':'id2','oiid':'iid2'}]
Мой аякс:
....
type : "POST",
data : {action:'pack_orders',
order_dict:$checkedRows},
....
Я вижу запрос в представлении django как QueryDict как:
<QueryDict : {'order_dict[0][oid]':'id1','order_dict[0][oiid]':'iid1',
'order_dict[1][oid]':'id2','order_dict[1][oiid]':'iid2'}>
Как я могу получить списки из запроса в представлении django, например:
oid_list = ['id1','id2']
oiid_list = ['iid1','iid2']
Вывод в views.py:
{'order_dict[0][oid]':'id1','order_dict[0][oiid]':'iid1',
'order_dict[1][oid]':'id2','order_dict[1][oiid]':'iid2'}
РЕДАКТИРОВАТЬ:
1) Добавлен вывод views.py из инструкции print dict(request.POST)
Я не уверен, что вы отправляете order_dict
после JSON.stringifying. Если нет, я предлагаю сделать это. Примите его как строку json в своем представлении, сделайте json.loads() на нем. У вас есть список словарей.
Допустим, вы храните его в переменных, называемых данными, тогда вы можете сделать следующее
oid_list = [x.get('oid') for x in data]
oiid_list = [x.get('oiid') for x in data]
Вывод:
oid_list - ['id1', 'id2']
oiid_list - ['iid1', 'iid2']
Должен работать для вас. Я не знаю, лучшее ли это решение, но простое.
order_dict
в ваших взглядах? Какой выход?