获取Django ajax request.POST和utf-8问题

时间:2018-11-09 14:38:44

标签: python json ajax django utf-8

1。 我必须发送请求。发布dict的字典,

printf("n=%d\n", totalch);

和ajax总是以某种方式使其成为一个字典

big_dict = {k:{kk:vv, kk1: vv1}, k1:{kk:vv, kk1: vv1}}

有人告诉我

one_dict = {k[kk]:vv, k[kk1]:vv1, k1[kk]:vv, k1[kk1]:vv1}

在ajax请求之前,然后json.json加载到我的python django视图中。

JSON.stringify(big_dict) 

一切正常,直到有人上传了一个名为文件的汉字。

在我看来,json.loads(request.POST.get('data')) 的第三步

(错误) 我的big_dict的键和值仍然很好,看起来不错,并显示适当的汉字。

(已编辑) 在我的big_dict的键和值中,一个值中的汉字看起来不错,而另一个值中则不然。

json.loads

但是当我尝试

{'0': {'designer': 'EV', 'number': '0229', 'version': '', 'bracket': '(120门幅)', 'imgUrl': 'http://127.0.0.1:8000/media/cache/temp/EV-0229(120%E9%97%A8%E5%B9%85%EF%BC%89.jpg'}}
vv中的

中文字符全部错误。 并且os告诉我没有这样的文件。

这似乎是一个简单的问题,我在网上搜索了一个多小时,然后尝试了一些操作,但没有任何效果。

预先感谢任何人帮助我。

编辑

模板中的脚本

for k, v in big_dict.items():
    for kk, vv in v.items():
        # do something with kk and vv

views.py

$('.designInfoSave').click(function() {
    let num = $('.designBox').length;
    let bcontext = {};
    for (let i = 0; i<num; i++) {
        let infoBox = $('#'+i+"-infoBox");
        let image = $('#image'+i);
        image.toArray();
        let children = infoBox.children();
        children.toArray();
        bcontext[i] = {
            'designer': children[2].value,
            'number': children[4].value,
            'version': children[6].value,
            'bracket': children[8].value,
            'imgUrl': image[0].currentSrc,
        };
    }
    $.ajax({
            type: 'POST',
            url: "{% url 'update_des_info' %}",
            data: {'csrfmiddlewaretoken': '{{ csrf_token }}', 'context':JSON.stringify(bcontext)},
            dataType: "json",
            success: function(response){
                $("#album").hide();
                $(".ajaxResult").show();
            }
        }
    )
});

0 个答案:

没有答案