您的位置:首页技术文章
文章详情页

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

【字号: 日期:2024-05-29 08:38:57浏览:86作者:猪猪

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属性转换成dictdef 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就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持好吧啦网。

标签: JavaScript
相关文章: