首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Ajax 'GET‘只返回字符串

Django Ajax 'GET‘只返回字符串
EN

Stack Overflow用户
提问于 2020-04-29 06:28:33
回答 2查看 523关注 0票数 0

我正在尝试使用ajax从数据库中获取一些数据,并对其进行迭代。由于某些原因,我得到一个长字符串,而不是可以迭代的对象。

views.py

代码语言:javascript
复制
def postHog(request):
if request.method == 'GET':
    pk = request.GET['megama']
    megama = Speciality.objects.get(id=pk)
    hog = Submain.objects.filter(speciality=megama)
    hogback = []
    for i in hog:
        if (i.image):
            hogback.append({"name": i.name, "desc": 
            i.desc, "image": i.image.url})
        else:
            hogback.append({"name": i.name, "desc": i.desc, "image": "None"})
response_data=json.dumps(hogback,ensure_ascii=False)
return JsonResponse({'hogback': response_data}, status=200,content_type="application/json")

urls.py

代码语言:javascript
复制
path(r'megamas/', views.postHog, name="post_hog"),

myjs.js

代码语言:javascript
复制
 $(".btnsmain").click(function () {
    $.ajax({
        type: 'GET',
        url: "/megamas",
        data:{
            megama:$("#id_main").val()
        },
        success:function (data) {

            $.each(data.hogback, function (index,element) {
                alert(index,element.name);

            });

        },
        error: function (data) {
            alert("not good");

        }
    })
});

如果我使用警告(Hogback),我会得到"[“,这就像我得到的是返回字符串,而不是列表和dict对象。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-29 06:38:11

json.dumps()返回一个json格式的字符串。

JsonResponsedata作为python对象,因此不需要手动将数据转换为json。(见文档)

因此,以下几点应能奏效:

代码语言:javascript
复制
return JsonResponse({'hogback': hogback}, status=200, content_type="application/json")
票数 2
EN

Stack Overflow用户

发布于 2020-04-29 06:40:46

只需解析javascript JSON.parse的方法,该方法识别字符串,然后在JSON对象中转换

您需要像这样编辑ajax的成功方法

代码语言:javascript
复制
        success:function (data) {
           const jsonData = JSON.parse(data)
           alert(jsonData)
           console.log(jsonData[0])
        },

也许你能理解我说的话,我也给了他们链接看他们- 在这里输入链接描述

如果你的问题解决了,那就告诉我

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61495524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档