Django:重建通过$ .post发送的结构化参数

我正在发送带有结构化后期数据的Ajax请求(带有jQuery):

$.post( myUrl, { items: [{code: 'a', description: 'aaa'}, {code: 'b', description: 'bbb'}] }) 

我在request.POST看到的是:

  

如何处理获取原始items的请求?

(请注意, request.POST.get('items')不起作用)

我为Django / Python创建了一个特殊的库来处理通过请求发送的结构化数据。 你可以在GitHub上找到它。

我建议您将对象发布为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")