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就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“django实现将后台model对象转换成json对象并传递给前端jquery”评论...
更新动态
2024年11月25日
2024年11月25日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]