免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7036 | 回复: 0
打印 上一主题 下一主题

请问,django中外键怎么查询?(已解决) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-23 23:48 |只看该作者 |倒序浏览
本帖最后由 zhujinzz 于 2011-08-25 10:32 编辑

如题

a,b,c,d四个表,a中存放e信息(比如主机名),b中存放f信息(比如服务web),
c中存放g信息(比如IP),a,b,c值唯一

d分别外键a,b,c

现在要以字典形式返回信息:
  1. info = {'host1':(ip,web),'host2':(ip,web)}
复制代码
在django中做外键查询,怎么堆代码?或者有其他方式,返回信息,主机名对应ip和服务信息?

路过的大虾猛踩吧,不要留情,谢谢!

问题解决,感谢老王(http://www.cnpythoner.com/post/137.html),谢谢大家,收贴!
  1. mysql> select * from djt_a;
  2. +----+-------+
  3. | id | e     |
  4. +----+-------+
  5. |  1 | test1 |
  6. +----+-------+
  7. 1 row in set (0.00 sec)

  8. mysql> select * from djt_b;
  9. +----+--------+
  10. | id | f      |
  11. +----+--------+
  12. |  1 | apache |
  13. +----+--------+
  14. 1 row in set (0.00 sec)

  15. mysql> select * from djt_c;
  16. +----+--------------+
  17. | id | g            |
  18. +----+--------------+
  19. |  1 | 192.168.1.10 |
  20. +----+--------------+
  21. 1 row in set (0.00 sec)

  22. mysql> select * from djt_d;
  23. +----+---------+------------+-------+
  24. | id | host_id | service_id | ip_id |
  25. +----+---------+------------+-------+
  26. |  1 |       1 |          1 |     1 |
  27. +----+---------+------------+-------+
  28. 1 row in set (0.00 sec)
复制代码
  1. In [1]: from djtest.djt import models

  2. In [2]: t = models.d.objects.select_related().get(id=1)

  3. In [3]: t
  4. Out[3]: <d: d object>

  5. In [5]: t.host.e
  6. Out[5]: u'test1'

  7. In [7]: t.service.f
  8. Out[7]: u'apache'

  9. In [8]: t.ip.g
  10. Out[8]: u'192.168.1.10'
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP