无法从jQuery检索发布到Django的对象数组

本174

我的Javascript:

var postData = {
    customer: 'test', 
    order: 1, 
    boxes: [
        {
            "size":"2",
            "color":"1",
            "colorNumber":"1",
            "barCode":"1234567890",
            "barCodePic":"",
        },
        {
            "size":"3",
            "color":"1",
            "colorNumber":"2",
            "barCode":"0987654321",
            "barCodePic":"",
        }
    ]
}

jQuery.post("http://10.0.1.7:8001/bapi/order/", postData );

我的Python:

print 'Customer:', request.POST.get('customer', None)                   
print 'Order:', request.POST.get('order', None)                         
print 'get - boxes:', request.POST.get('boxes', None)                    
print 'get - boxes[]:', request.POST.get('boxes[]', None)               
print 'getlist - boxes[]:', request.POST.getlist('boxes[]')             
print 'getlist - boxes:', request.POST.getlist('boxes')                                                                      
print request.POST                                                      

输出:

Customer: test
Order: 1
get - boxes: None
get - boxes[]: None
getlist - boxes[]: []
getlist - boxes: []
<QueryDict: {u'customer': [u'test'], u'boxes[1][barCode]': [u'0987654321'], u'boxes[0][size]': [u'2'], u'boxes[1][colorNumber]': [u'2'], u'boxes[1][size]': [u'3'], u'boxes[0][colorNumber]': [u'1'], u'boxes[1][color]': [u'1'], u'boxes[0][barCode]': [u'1234567890'], u'boxes[1][barCodePic]': [u''], u'boxes[0][barCodePic]': [u''], u'boxes[0][color]': [u'1'], u'order': [u'1']}>

我没有得到我期望的名单。我希望得到一个包含每个“盒子”对象字典的python列表。

建议我在JavaScript中使用“ boxes []”作为参数名称,因此我的帖子数据为:

var postData = {
    customer: 'test', 
    order: 1, 
    'boxes[]': [
        {
            "size":"2",
            "color":"1",
            "colorNumber":"1",
            "barCode":"1234567890",
            "barCodePic":"",
        },
        {
            "size":"3",
            "color":"1",
            "colorNumber":"2",
            "barCode":"0987654321",
            "barCodePic":"",
        }
    ]
}

尝试时,输出为:

Customer: test
Order: 1
get - boxes: None
get - boxes[]: [object Object]
getlist - boxes[]: [u'[object Object]', u'[object Object]']
getlist - boxes: []
POST BELOW
<QueryDict: {u'customer': [u'test'], u'boxes[]': [u'[object Object]', u'[object Object]'], u'order': [u'1']}>

您可以在QueryDict中看到,这只是包含'[object Object']的unicode字符串的列表。实际上没有对象数据。

迈克尔布

您需要先对JavaScript对象进行编码。这些不能直接通过GET或POST参数传递。

POST使用jQuery(即用括起来的任意数据{ "size":"3", "color":"1" ... }之前,请尝试在JavaScript对象上调用JSON.stringify()。例如:

[

    JSON.stringify({
        "size":"2",
        "color":"1",
        "colorNumber":"1",
        "barCode":"1234567890",
        "barCodePic":"",
    }),
    JSON.stringify({
        "size":"3",
        "color":"1",
        "colorNumber":"2",
        "barCode":"0987654321",
        "barCodePic":"",
    })

]

然后在Python中,使用类似的方法对其进行解码:

import json
box_0_string = request.POST.get('boxes[]')[0]
box_0_dict = json.loads(box_0_string)

获取单个JSON对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将jQuery数组发布到Django

来自分类Dev

将对象或对象数组发布到API

来自分类Dev

将对象数组发布到帆会导致“ TypeError:无法将对象转换为原始值”

来自分类Dev

将对象数组发布到帆会导致“ TypeError:无法将对象转换为原始值”

来自分类Dev

无法将事件绑定到包含jquery对象的数组

来自分类Dev

无法从mongodb检索对象到父函数

来自分类Dev

无法更改从localStorage检索到的对象的属性

来自分类Dev

无法从输入表单发布到javascript数组?

来自分类Dev

将对象检索到Django templatetags中。

来自分类Dev

无法从对象数组中检索数据?

来自分类Dev

我似乎无法发布对象数组

来自分类Dev

检索发布数组值

来自分类Dev

如何使用JQuery发布对象的JSON数组

来自分类Dev

如何使用Jquery发布对象数组?

来自分类Dev

如何使用JQuery发布对象的JSON数组

来自分类Dev

无法从jQuery将数据发布到PHP

来自分类Dev

Django REST批量发布/发布JSON对象数组

来自分类Dev

无法通过jQuery ajax发布Javascript数组

来自分类Dev

如何将对象检索到Javascript数组中?

来自分类Dev

猫鼬-将对象数组发布到Mixed

来自分类Dev

如何将json对象数组发布到Web API

来自分类Dev

我无法访问从Firebase检索到的javascript对象的值

来自分类Dev

无法在服务器上检索到JSON对象

来自分类Dev

无法将对象列表发布到Web API

来自分类Dev

无法将JSON对象发布到asp.net webapi

来自分类Dev

Django 模型对象到 Javascript 数组

来自分类Dev

在views.py Django中呈现检索到的对象的字典

来自分类Dev

通过jQuery将JSON对象发布到php

来自分类Dev

jQuery .each()对象将错误的值发布到ajaxurl

Related 相关文章

热门标签

归档