V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fanne
V2EX  ›  Django

django queryset 查询如何返回 json 内容

  •  
  •   fanne · 2017-04-01 11:22:08 +08:00 · 3607 次点击
    这是一个创建于 2792 天前的主题,其中的信息可能已经有所发展或是发生改变。

    views.py

    def add_game_item(request):
        if request.is_ajax():
            platformId = request.POST.get("platformId")
            plantName = plat_info.objects.filter(plat_id=platformId)
            # host_list = host_info.objects.filter(plat_name=plantName)
            mysql_list = mysql_info.objects.filter(plat_name=plantName)
            json_data = serializers.serialize("json", plantName)
            print json_data
            return JsonResponse(json_data,safe=False)
    

    html ajax 内容

    {% endblock %}
    {% block bottom-js %}
        <script type="text/javascript">
            $(document).ready(function () {
                $("#id_select").change(function () {
                    {#alert('平台 id :'+$("#id_select").val())#}
                    $.ajax({
                        type:"POST",
                        url:"/items/add_game_item/",
                        data:{platformId:$("#id_select").val()},
                        cache:false,
                        dateType:"json",
                        success:function (data) {
                            alert(data);
                            alert(data.length)
                            alert(typeof data)
                        }
                    });
                    return false;
                })
            })
        </script>
    {% endblock %}
    

    其中 alert(data)内容如下:

    alert(typeof data)内容如下:

    data 返回是一个 string 值,那么 views.py 里怎样处理才能返回一个 json 值给前端?

    6 条回复    2017-04-01 17:01:36 +08:00
    fanne
        1
    fanne  
    OP
       2017-04-01 14:26:13 +08:00
    已解决,前端转 json 对象
    var data_json = JSON.parse(data)
    robinlovemaggie
        2
    robinlovemaggie  
       2017-04-01 14:41:34 +08:00
    上 djangorestframwork 开启序列化即可
    baiyi
        3
    baiyi  
       2017-04-01 14:45:50 +08:00
    Response Headers 中应该有 `Content-Type:application/json; charset=utf-8`
    Gothack
        4
    Gothack  
       2017-04-01 14:45:59 +08:00
    我习惯用 return HttpResponse(json.dumps(result,sort_keys=True), content_type="application/json")
    daveze
        5
    daveze  
       2017-04-01 15:30:44 +08:00
    使用 django-restframwork
    fanne
        6
    fanne  
    OP
       2017-04-01 17:01:36 +08:00
    @daveze @robinlovemaggie 妥,可以。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2735 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 12:38 · PVG 20:38 · LAX 04:38 · JFK 07:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.