zoukankan      html  css  js  c++  java
  • queryset转JSON的使用方法

    原理:
      1,queryset类型的读取方式与字典类似,但并非字典,它内部的值都是OBJECT对象。那么JSON是无法序列化对象的。
      2,利用values()和values_list()方法,将queryset转换成字典和列表形式的存储方式。PS:这样还不行,还有一步要做。
      3,再将转换完的queryset转换成list列表。 注意:上面的转换不是转换成字典或列表,而是字典和列表的数据存储形式。
      4,这样,通过JsonResponse就可以序列化了,重要一点:必须加入safe=False 参数。(因为咱们序列化的是一个列表)
      (解释 safe :这个参数被设置为:False ,那data可以填入任何能被转换为JSON格式的对象,比如list, tuple, set。 默认的safe 参数是 True. 如果你传入的data数据类型不是字典类型,那么它就会抛出 TypeError的异常。)

    视图函数中部分代码:

     1 if request.is_ajax():
     2   id = request.GET.get('id')
     3   article_list = Article.objects.values().filter(user__department__pk=id)#queryset不能json序列化,是因为queryset中是对象obj.需要转换成字典
     4   ret_list = list(article_list)
     5 return JsonResponse(ret_list, safe=False)

    前端AJAX中的代码:

    <script>
      $('.showlist').click(function () {
        $.ajax({
          url:"",
          type:'get',
          data:{
            id:$(this).val(),
            },
          success:function (data) {
    
            console.log(data[0]['nid'])  
            }
         })
      })
    </script>
  • 相关阅读:
    pat00-自测5. Shuffling Machine (20)
    Spiral Matrix
    Search in Rotated Sorted Array II
    Search in Rotated Sorted Array
    Best Time to Buy and Sell Stock II
    4Sum
    3Sum Closest
    3Sum
    MySQL存储过程、函数和游标
    Word Ladder
  • 原文地址:https://www.cnblogs.com/sly27/p/10474883.html
Copyright © 2011-2022 走看看