django实现将后台model对象转换成json对象并传递给前端jquery

1、django的model转json对象。

1.1、单个modle转换,返回json对象:

sqlOrder = get_object_or_404(SqlOrder,id=request.GET.get("id"))
objJson = serialize('json',[sqlOrder])[1:-1]
{"model": "sqlapply.sqlorder", "pk": 2, "fields": {"work_id": "{now}{_ran}", "username": "admin", "status": 3, "type": 0, "backup": 0}}

注意:objJson["fields"]["username"] 才能获得想要属性值。objJson["pk"]获得主键值。

1.2、querySet转换:

json_data = serializers.serialize("json", MyModel.objects.all())

2、转换后的json对象作为子元素传递到前端:

2.1、将json对象转换成字符串。(单引号包含属性)。

objStr = json.loads(objJson)

2.2、组拼json对象。

response_data = {'statcode': '1', 'data':objStr}

2.3、返回前进行对象转换:

return HttpResponse(json.dumps(response_data))

2.4、前端接受并获取:

 $.ajax({
      url: "{% url 'sqlapply:auditSqlOrder' %}",
      type:"GET",
      data:{"id":id,"args":"getObjById"},
      success:function(result){
        res = jQuery.parseJSON(result);  #关键代码!!!!解析一个 JSON 字符串'{"name":"John"}'为Json对象。
        if (res["statcode"] == "1") {
          objStr = res["data"];
          console.log(objStr["fields"]["username"]);#获取方式1
      alert(objStr.fields.username);#获取方式2
        }
      },
      error:function(){
        alert("访问异常,请截图联系管理员 \t\n ErrorNO:auditSqlOrder.getObjById")
      }
    });

补充知识:django 将model转换成想要的json格式

model:

class SysRole(models.Model):
  id = models.CharField(db_column='ID', primary_key=True, max_length=50) # Field name made lowercase.
  rolename = models.CharField(db_column='RoleName', max_length=50) # Field name made lowercase.
  description = models.CharField(db_column='Description', max_length=200, blank=True, null=True) # Field name made lowercase.
  querycode = models.CharField(db_column='QueryCode', max_length=200, blank=True, null=True) # Field name made lowercase.
  isdisabled = models.CharField(db_column='IsDisabled') # Field name made lowercase. This field type is a guess.

  def __unicode__(self):
    return self.rolename
  # 将属性和属性值转换成dict 列表生成式
  def toDict(self):
    return dict([(attr, getattr(self, attr)) for attr in [f.name for f in self._meta.fields]])#type(self._meta.fields).__name__
  class Meta:
    managed = False
    db_table = 'sys_role'
# 遍历查询集 调用model属性转换成dict
def queryset_to_json(queryset):
    obj_arr=[]
    for o in queryset:
        obj_arr.append(o.toDict())
    return obj_arr
  # 获取角色分页列表
  def get_roles_page(self,_page,_limit):
    _roles = SysRole.objects.all()[(int(_page)-1)*int(_limit):int(_page)*int(_limit)]
    _count = SysRole.objects.all().count()
    _dict_roles = tools.queryset_to_json(_roles)
    _data_page_json = {}
    _data_page_json['Rows']=_dict_roles
    _data_page_json['Total']=_count
    return json.dumps(_data_page_json,ensure_ascii=False)

在model上加入toDict方法 然后执行查询 得到queryset 遍历它 将queryset里的每个model执行他的todict方法 转换成字典格式 之后统一调用json.dumps方法转json

以上这篇django实现将后台model对象转换成json对象并传递给前端jquery就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Django 返回json数据的实现示例

    在一个网站,大量数据的前后端交互,JSON是最好的传递数据方式了. 在Django中,使用JSON传输数据,有两种方式,一种是使用Python的JSON包,一种是使用Django的JsonResponse 方法一:使用Python的JSON包 from django.shortcuts import HttpResponse import json def testjson(request): data={ 'patient_name': '张三', 'age': '25', 'patient_

  • jQuery使用ajax传递json对象到服务端及contentType的用法示例

    本文实例讲述了jQuery使用ajax传递json对象到服务端及contentType的用法.分享给大家供大家参考,具体如下: 0.一般情况下,通过键值对的方式将参数传递到服务端 0.1 客户端代码: $.ajax({ url: 'TestHandler.ashx', type: 'post', data: { name: "admin", age: 10 }, dataType: 'text', success: function (data) { alert(data); } })

  • Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式

    Django自带有个强大的后天管理系统,接下来我就给大家介绍一下x的admin一些强大的操作及后台美化. 首先给大家介绍一些xadmin的注册创建,首先下载官方xadmin插件包放到对应的第三方apps_extra文件夹中 接下来就是在setting中注册xadmin和crispy_forms到INSTALLED_APPS,接下来就是在我们的urls.py文件中配置路由 import xadmin urlpatterns = [ """ url(r'^xadmin/', xa

  • django ajax json的实例代码

    1. views.py 定义views视图函数,将数据存入字典.并用压缩为json格式,dumps,并return. import json def get_comments(request, article_id): article_obj = models.Article.objects.get(id=article_id) article_comments = article_obj.comment_set.select_related() comment_dict = {} for i

  • django实现将后台model对象转换成json对象并传递给前端jquery

    1.django的model转json对象. 1.1.单个modle转换,返回json对象: sqlOrder = get_object_or_404(SqlOrder,id=request.GET.get("id")) objJson = serialize('json',[sqlOrder])[1:-1] {"model": "sqlapply.sqlorder", "pk": 2, "fields":

  • 把普通对象转换成json格式的对象的简单实例

    1.什么叫做JSON? JSON只是一种数据格式(它不是一种新的数据类型) var obj = {name: "中国", age: 5000};//->普通格式的对象 var jsonObj = {"name": "中国", "age": 5000};//->JSON格式的对象 (只要把普通对象的属性名用""(不能是'')包起来,这样的格式就是我们JSON格式的对象) var data = [

  • 使用JSON.parse将json字符串转换成json对象的时候会出错

    在对数据库取出来的数据(特别是描述信息)里面含有特殊字符的话,使用JSON.parse将json字符串转换成json对象的时候会出错,主要是双引号,回车换行等影响明显,左尖括号和右尖括号也会导致显示问题,所以要在输出到页面进行json对象转换之前将一些特殊符合进行编码或转义,下面展示的是C#代码编码和转义几个常用特殊字符.经过笔者测试,将这些符号编码和转义之后,大部分json字符串都可以转换成json对象了.如果遇到个别问题,应朝着这个方向去查找问题. theString = theString

  • python实现class对象转换成json/字典的方法

    本文实例讲述了python实现class对象转换成json字典的方法.分享给大家供大家参考,具体如下: # -*- encoding: UTF-8 -*- class Student: name = '' age = 0 def __init__(self, name, age): self.name = name self.age = age def convert_to_dict(obj): '''把Object对象转换成Dict对象''' dict = {} dict.update(obj

  • Java如何将String转换成json对象或json数组

    目录 将String转换成json对象或json数组 字符串转json数组的解决 首先导入 net.sf.json.JSONArray和net.sf.json.JSONObject 两个jar 包 将String转换成json对象或json数组 这里的SmartProejctEquipmentMap 是我自定的一个实体类,可以自己定义转换. 注意:json字符串中键的名称要和实体类一致. @Test public void TestJsonObject() { String datajson =

  • C#中的DataSet、string、DataTable、对象转换成Json的实现代码

    C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// <summary> /// 过滤特殊字符 /// </summary> /// <param name="s">字符串</param> /// <returns>json字符串</returns> private s

  • js中把JSON字符串转换成JSON对象最好的方法

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析.   第一种解析方式:使用eval函数来解析,并且使用jQuery的each方法来遍历 用jQuery解析JSON数据的方法,作为jQuery异步请求的传输对象,jQuery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明. 这里

  • JSON--List集合转换成JSON对象详解

    1. 简单的手动放置 键值对 到JSONObject,然后在put到JSONArray对象里 List<Article> al = articleMng.find(f); System.out.println(al.size()); HttpServletResponse hsr = ServletActionContext.getResponse(); if(null == al){ return ; } for(Article a : al){ System.out.println(a.g

  • Ruby中嵌套对象转换成json的方法

    JSON由于其数据结构简单便利,已逐渐成为了互联网上的主流数据交换的数据格式. 在讨论嵌套对象(Nested Object)的JSON转换方法之前,我们先看简单的ruby JSON转换.首先,ruby对象转换为JSON字符串: 复制代码 代码如下: class Obj1 def initialize(var1) @var1 = var1 end def to_json(*a) { "json_class" => self.class, "data" =>

  • js将类数组对象转换成数组对象

    在标准浏览器中,好像只要对象存在length属性,就能把它转换为数组,但IE就不尽然. //※※※※※※※※※※※测试1※※※※※※※※※※※※※※ function test(){ alert(arguments) arguments = Array.prototype.slice.call(arguments); alert(arguments instanceof Array); alert(arguments) } test(1,2,3,4); //※※※※※※※※※※※测试2※※※※※

随机推荐