django model 多对多查询
2015-09-04 13:24
381 查看
看一下自己的models文件:
这两个表组成多对多关系,自然而然就产生了第三个对应记录ID值的表:
第一:从前端返回的一个组名,通过这个组查找到HostList表里面的所有IP:
id = request.GET.get('id')
group_name = Group.objects.get(id=id)
all_ip = group_name.hostlist_set.all()
print all_ip
查看后台代码执行效果:(结果主要有HostList的return self.ip决定)
本文出自 “小罗” 博客,请务必保留此出处http://xiaoluoge.blog.51cto.com/9141967/1691303
class HostList(models.Model): ip = models.IPAddressField(unique=True, verbose_name=u'IP地址') hostname = models.CharField(max_length=30, verbose_name=u'主机名') group = models.ManyToManyField('Group', null=True, blank=True ,verbose_name=u'组名') application = models.CharField(max_length=20, verbose_name=u'应用') bianhao = models.CharField(max_length=30, verbose_name=u'编号') idc_name = models.CharField(max_length=40,null=True,blank=True, verbose_name=u'所属机房') def __unicode__(self): return self.ip class Group(models.Model): name = models.CharField(max_length=50,unique=True) def __unicode__(self): return self.name
这两个表组成多对多关系,自然而然就产生了第三个对应记录ID值的表:
mysql> show tables; +----------------------------+ | Tables_in_cmdb | +----------------------------+ | app_group | | app_hostlist | | app_hostlist_group | 可以看多多出了一个app_hostlist_group的表:
mysql> select * from app_hostlist_group; +----+-------------+----------+ | id | hostlist_id | group_id | +----+-------------+----------+ | 13 | 18 | 1 | | 8 | 17 | 2 | | 3 | 16 | 2 | | 12 | 14 | 2 | | 11 | 19 | 1 | +----+-------------+----------+映射了id的对应关系;关于查询的两种方式:
第一:从前端返回的一个组名,通过这个组查找到HostList表里面的所有IP:
id = request.GET.get('id')
group_name = Group.objects.get(id=id)
all_ip = group_name.hostlist_set.all()
print all_ip
查看后台代码执行效果:(结果主要有HostList的return self.ip决定)
[01/Sep/2015 07:50:04] "GET /group/ HTTP/1.1" 200 24954 [<HostList: 192.168.63.114>, <HostList: 192.168.63.63>]
本文出自 “小罗” 博客,请务必保留此出处http://xiaoluoge.blog.51cto.com/9141967/1691303
相关文章推荐
- Google矩阵及PageRank的求解方法
- hdoj 3996 Gold Mine 【最小割 之 最大权闭合图】
- bandwagon支付宝支付教程
- UVA11090 Going in Cycle (二分+判负环)
- Microsoft Natural Ergonomic 4000 zoom改键
- django 1.8 官方文档翻译: 3-3-2 File对象
- GO语言学习笔记3(函数接口并发)
- GO语言学习笔记2(指针数组MAP)
- poj 1179 Polygon
- go (golang) DNS域名解析实现
- 第二章 概述
- POJ 1003 Hangover
- 访问google的一些方法
- mongo 常用的命令
- 谷歌Logo的变迁之路:从课后作业级走向世界级
- 运用Polygon类绘制六边形
- <转>四个重要属性——Action、Data、Category、Extras
- 【英语】Bingo口语笔记(63) - 一个单词的多种发音
- 【英语】Bingo口语笔记(62) - 生气道歉场景的表达
- Goods:图书模块按分类查询各层实现