簡體   English   中英

Django:重建通過 $.post 發送的結構化參數

[英]Django: reconstruct structured parameters sent via $.post

我正在發送一個帶有結構化帖子數據的 Ajax 請求(使用 jQuery):

$.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')不起作用)

我建議您將對象發布為 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")

我為 Django/Python 制作了特殊的庫來處理通過請求發送的結構化數據。 你可以找到它在GitHub上這里

你可以試試:

request.POST.getlist('items')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM