注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

郁夫的博客

我爱你们,只是你们不知道!

 
 
 

日志

 
 
 
 

django 如何查询manytomany的结果  

2011-03-10 16:09:25|  分类: Django |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

models定义如下:
class Node(models.Model):
    hostname = models.CharField(max_length=255)
    ipaddr = models.IPAddressField()
    status = models.CharField(max_length=255, default="off")
    def __str__(self):
        return self.hostname


class Resource(models.Model):  
    installdate = models.DateTimeField('注册时间', auto_now_add=True)
    name = models.CharField(max_length=255) 
    type = models.CharField(max_length=255)    
    description = models.CharField(max_length=255)
    status = models.CharField(max_length=255)
    Caption = models.CharField(max_length=25500)
    def __str__(self):
        return self.name


class Hanode(models.Model):
    node = models.OneToOneField(Node)
    resource = models.ManyToManyField(Resource)
    def __unicode__(self):
        return self.node.hostname;


通过hanode = Hanode.objects.all(),然后模板中:
{% for ha_node in hanode %}
 <a href="#">节点名:{{ ha_node.node.hostname }}</a>
 <a href="#">IP地址:{{ ha_node.node.ipaddr }}</a>
    <a href="#">节点状态:{{ ha_node.node.status }}</a>
    {% endfor %}
可以获得相关的信息,但是{{ ha_node.resource.name }} 和{{ ha_node.resource.status}}无法获取相关信息,多对多该如何查询? 


困扰很久了,google了很久也未能理解,请各位大大帮帮忙 =。=          

 

多对多关系返回的应该是一个结果集,不是单个对象,所以你上面的代码不对。 至少也要是一个循环。是不是你应该使用多对一的关系?

 

感谢limodou !搞定了!
{% for re in ha_node.resource.all %}
{{ re.name}}<br>
{{ re.status }}<br>
{% endfor %}


即可!

  评论这张
 
阅读(1018)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017