我正在发送带有结构化后期数据的Ajax请求(
$.post(
myUrl,
{
items: [{code: 'a', description: 'aaa'},
{code: 'b', description: 'bbb'}]
})
我在request.POST
中看到的是:
<QueryDict: {u'items[0][code]': [u'a'],
u'items[0][description]': [u'aaa'],
u'items[1][description]': [u'bbb'],
u'items[1][code]': [u'b']}>
如何处理获取原始items
的请求?
(请注意,request.POST.get('items')
不起作用)
答案 0 :(得分:5)
我建议您将对象发布为JSON。在Django中,您可以通过将JSON解析为python对象来重新创建结构。
使用jQuery发布JSON
$.post(
myUrl,
JSON.stringify({
items: [{code: 'a', description: 'aaa'},
{code: 'b', description: 'bbb'}]
})
)
在Django视图中解析JSON
from django.http import HttpResponse
from django.utils import simplejson
def my_view(request):
if request.method == 'POST':
json_data = simplejson.loads(request.raw_post_data)
# json_data contains your objects
print json_data['items']
return HttpResponse("Got data")
答案 1 :(得分:4)
我为Django / Python创建了一个特殊的库来处理通过请求发送的结构化数据。你可以在GitHub上找到它here。
答案 2 :(得分:1)
您可以尝试:
request.POST.getlist('items')