1、django的model转json对象。
1.1、单个modle转换,返回jsonhtml" target="_blank">对象:
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就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
问题内容: 我有一个JSON对象,我将其转换为并在此处进行一些处理。稍后,我想转换相同的缓冲区数据以转换为有效的JSON对象。 我正在研究Node V6.9.1 下面是我尝试过的代码,但是当我转换回JSON却无法打开该对象时遇到了。 所以我尝试使用检查方式打印整个对象 如果我尝试像数组一样读取它 我也尝试解析它抛出 我需要将其视为我创建的真实对象(我的意思是像上面声明的那样)。 请帮忙.. 问题答
问题内容: 我正在尝试使用Django中的ValuesQuerySet功能将查询返回的字段数限制为仅需要的字段数。我想将此数据集序列化为JSON对象。但是,Django不断抛出错误。下面包含了我的代码和收到的错误: 错误: 谢谢 ! 问题答案: 尝试使用QuerySet 通过方法对值列表中的字段进行子集设置:
问题内容: 我有以下内容,但它不起作用,我在stackoverflow上的某个地方读到了它的工作原理,但我似乎无法使其工作..它出错了……我在做错什么吗? 如果我确实传递了这样的数据-它可以工作-所以我知道我的服务正在工作 问题答案: 我相信代码将在对象上调用.value或.toString(),然后通过网络传递。您想传递JSON。 因此,包括JSON JavaScript库 http://www
问题内容: 我很难将Flask / Python变量传递给Javascript。 基本上,我是从MySQL导入的,并尝试以三种不同的方式呈现返回值。 那是我的dict项目上运行以下命令时的输出。 此方法不好,但是我添加了详细信息,根本不是正确的格式。 我直接将python dict传递给看起来像这样的模板 然后在模板方面,我尝试了以下JavaScript行 没有一个可以一起工作或单独工作。 我也尝
我有一个JSON对象,我正在将它转换成一个,并在这里进行一些处理。稍后,我想将相同的缓冲区数据转换为有效的JSON对象。 我的工作节点V6.9.1 下面是我尝试过的代码,但当我转换回JSON并且无法打开此对象时,我得到了。 所以我试着用检查的方式打印整个物体 如果我试着像数组一样读取它 我试图解析它也抛出SynTaxError:意外令牌o在JSON在位置2 我需要像我创建的那样将其视为真实对象(我
问题内容: 我在php中有对象,每个对象代表一个“项目”以及与之相关的所有信息。 当用户浏览页面时,这些对象应传递给javascript。理想情况下,镜像相同的结构,因此我可以使用Raphael在我的网站上将每个项目及其信息显示为单独的形状。 但是,如何将对象从php转换为javascript? 问题答案: 您可以将PHP对象转换为数组,然后使用JSON函数对其进行编码。之后,从JavaScrip