
Django数据库多表连接查询
时间:2017-02-13 作者:zhankehua 评论:0 点击:2730 次
最近在学习python,为了尽快掌握python,我特意将PHP写的NESSUS漏洞扫描报告统计系统改写成python语言。在使用django进行多表连接查询中,费了不少力气,网上的资料没有满足我的需求。现将自己的学习情况记录下来。
需求一:如何将主表的某个字段与从表的非主键建立外键关系?
为了这个需求,我花了近2天的时间在网上也没找到。无意间在django官方文档中发现这样一个关键字to_field
依据此说明,我在models中这样定义,测试通过
上面定义的外键是从表Vulnerabilities中的pluginID字段,依据文档说明,pluginID字段必须是unique=true,那就按文档要求做吧。
从表的主键作为主表的外键,在这里就不记录了,网上太多了。
需求二:如何进行动态条件查询?
网开始时写的时候,我是把每种条件都写上一遍,代码重多边,实际上只需要使用"**arg"这样的参数。具体写法如下:
需求三:如何返回指定的字段?
只需要在values中指定列名,参照上图的values(*fields)
需求四:如何对列名重命名?我们在连接查询时,想将从表的某个字段在查询结果中返回,这时使用“外键名称__从表字段名",愿意是返回的结果中字段名为从表中的名字,但实际上是外键名称__从表字段名,这时需要进行重命我。我是这样做的,使用关键字annotate.参见上图。
下图是较全的说明,
滴水成河,聚少成丘,继续努力...
本文标签:
转载请注明出处: http://www.itsec365.cn/?id=29
已有 2730 位网友参与,快来吐槽:
发表评论