django model ValueQuerySet QuerySet 转换成JSON
这里我有4个字段需要使用外键,那么在调取数据的时候就可以使用两个'_'进行调取,当然条件必须需要从前端传进来
models.py
class HostInfo(models.Model):
host_ip = models.GenericIPAddressField()
usage = models.ForeignKey('ServiceLine')
sysversion = models.ForeignKey('SystemVersion')
sysuser = models.ForeignKey('SystemUser')
proposer = models.CharField(max_length=20)
dataversion = models.ForeignKey('DataBaseVersion')
tomversion = models.ForeignKey('TomcatVersion')
调用的时候需要了解的是:1、使用values进行调用返回的是valueQuerySet字段,而浊QuerySet,所以先转成list然后再使用json.dumps转成json
2、使用filter进行调用返回在是QuerySet对象,那么就可以直接使用serializers.serialize() 方法转化为json
def search(request):
keyword = request.GET.get('keyword', None)
if keyword:
obj = models.HostInfo.objects.filter(host_ip=keyword).values('host_ip',
'usage__serviceline',
'sysversion__systemversion',
'sysuser__systemuser',
'dataversion__databaseversion',
'tomversion__tomcatversion',
'proposer',
'id'
)
# obj = models.HostInfo.objects.filter(host_ip=keyword)
# data = serializers.serialize('json', obj)
data = json.dumps(list(obj))
return HttpResponse(data)
前端在拿到json对象后就可以使用字符串或者遍历的方式进行前端的显示
<script>
$("#search_btn").click(function () {
$.ajax({
url:'/cmdb/search',
type:'GET',
data:$("#search_input").serialize(),
dataType:'json',
success: function (response,stutas,xhr) {
$('#tb').empty();
$.each(response, function (i, item) {
var vfields = item; //这里不定义也行,在下面的调用中直接使用item,请忽略我不规范的缩进
$("tbody").append("<tr>"
+ "<td>" + i + "</td>"
+ "<td>" + vfields.host_ip +"</td>"
+ "<td>" + vfields.usage__serviceline + "</td>"
+ "<td>" + vfields.sysversion__systemversion + "</td>"
+ "<td>" + vfields.sysuser__systemuser + "</td>"
+ "<td>" + vfields.proposer + "</td>"
+ "<td>" + vfields.dataversion__databaseversion + "</td>"
+ "<td>" + vfields.tomversion__tomcatversion + "</td>"
+ "<td>" + "<a " + "href='/cmdb/edit-" + vfields.id + "'>编辑</a>" + "|" + "<a href='/cmdb/delete-" + vfields.id + "'>删除</a>" + "</td>"
+ "</tr>");
})
}
});
});
</script>
django model ValueQuerySet QuerySet 转换成JSON的更多相关文章
- 将Model对象转换成json文本或者json二进制文件
将Model对象转换成json文本或者json二进制文件 https://github.com/casatwy/AnyJson 注意:经过测试,不能够直接处理字典或者数组 主要源码的注释 AJTran ...
- Java中的List转换成JSON报错(五)
1.错误描述 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/beanu ...
- Java中的List转换成JSON报错(四)
1.错误描述 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/colle ...
- Java中的List转换成JSON报错(二)
1.错误描述 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/loggi ...
- Java中的List转换成JSON报错(一)
1.错误描述 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/ ...
- DataTable 转换成 Json的3种方法
在web开发中,我们可能会有这样的需求,为了便于前台的JS的处理,我们需要将查询出的数据源格式比如:List<T>.DataTable转换为Json格式.特别在使用Extjs框架的时候,A ...
- asp.net dataTable转换成Json格式
/// <summary> /// dataTable转换成Json格式 /// </summary> /// <param name="dt"> ...
- C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。
C#中对象,字符串,dataTable.DataReader.DataSet,对象集合转换成Json字符串方法. public class ConvertJson { #region 私有方法 /// ...
- List转换成json格式字符串,json格式字符串转换成list
一.List转换成json字符串 这个比较简单,导入gson-x.x.jar, List<User> users = new ArrayList<User>(); Gson g ...
随机推荐
- 1006 Sign In and Sign Out (25)(25 分)思路:普通的时间比较题。。。
1006 Sign In and Sign Out (25)(25 分) At the beginning of every day, the first person who signs in th ...
- 常见的sql server 链接问题------持续更新
问题1:超时时间已到.超时时间已到,但是尚未从池中获取连接.出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小 再查询窗口输入exec sp_who2进行查询链接消耗资源 可能出现的情况是 ...
- combiner中使用状态模式
mapreduce中的combine过程 hadoop的map过程执行完成后,每一个map都可能会产生大量的本地输出,Combiner的作用就是对map端的输出先做一次合并,减少在map和reduce ...
- 【UVALive】3905 Meteor(扫描线)
题目 传送门:QWQ 分析 扫描线搞一搞. 按左端点排序,左端点相同时按右端点排序. 如果是左端点就$ cnt++ $,否则$ cnt-- $ 统计一下$ Max $就行了 代码 #include & ...
- RMI原理及简单demo
1 简介 RMI是远程方法调用的简称,它能够帮助我们查找并执行远程对象的方法.通俗地说,远程调用就象将一个class放在A机器上,然后在B机器中调用这个class的方法. 2 概念 其他机器需要调用的 ...
- 浅析ECMP等价路由
1.ECMP简介 Equal-CostMultipathRouting,等价多路径.即存在多条到达同一个目的地址的相同开销的路径.当设备支持等价路由时,发往该目的 IP 或者目的网段的三层转发流量就可 ...
- Python Twisted系列教程21: Twisted和Haskell
作者:dave@http://krondo.com/twisted-and-haskell/ 译者: Cheng Luo 你可以从”第一部分 Twist理论基础“开始阅读:也可以从”Twisted ...
- 核主成分分析(Kernel Principal Component Analysis, KPCA)的公式推导过程
KPCA,中文名称”核主成分分析“,是对PCA算法的非线性扩展,言外之意,PCA是线性的,其对于非线性数据往往显得无能为力,例如,不同人之间的人脸图像,肯定存在非线性关系,自己做的基于ORL数据集的实 ...
- Oracle导出CSV文件
-- 建立存储过程 CREATE OR REPLACE PROCEDURE SQL_TO_CSV ( P_QUERY IN VARCHAR2, -- PLSQL文 P_DIR IN VARCHAR2, ...
- krpano资源下载及还原全景图
krpano资源下载及还原全景图 现在全景云平台有大量的全景图资源,就存在了如何下载的需求. 原理:1.云平台多数使用krpano内核,首先需要将全景云平台中被krpano切成的全景图碎片下载下来,并 ...