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


本篇文章小编给大家分享一下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("访问异常,请截图联系管理员 tn 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。

www.dengb.comtruehttps://www.dengb.com/PHPjc/1397685.htmlTechArticledjango实现将后台model对象转换成json对象并传递给前端jquery代码 本篇文章小编给大家分享一下django实现将后台model对象转换成json对象并传递给…

—-想了解更多的php相关异常处理怎么解决关注<计算机技术网(www.ctvol.com)!!>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/phpttorial/103008.html

(0)
上一篇 2020年4月28日
下一篇 2020年4月28日

精彩推荐