2
我想获取一个对象,该对象遍历具有反向外键关系的2个模型。我已经能够获取第一个模型的对象(ipv4address),但无法通过反向外键获取链接到该对象的对象。 我对django相当陌生,所以我可能会接近这个错误开始。任何建议都更受欢迎。django中的多个嵌套外键关系
我通过了所有对等对象的模板,例如:
def view_ix(request, ix):
peers = Peer.objects.filter(exchange=ix).order_by('asn')
return render_to_response('view_ix.html', {
'peers': peers,
'exchange' : ix,
'exchanges' : exchanges.list(),
}, context_instance = RequestContext(request))
型号:
class Peer(models.Model):
exchange = models.CharField(max_length=50)
organisation = models.CharField(max_length=200)
contact = models.EmailField(max_length=254)
asn = models.IntegerField()
def __unicode__(self):
return unicode(self.asn) + '\t' + unicode(self.organisation)
class IPv4Address(models.Model):
peer = models.ForeignKey(Peer)
ip = models.GenericIPAddressField(protocol='IPv4')
def __unicode__(self):
return unicode(self.peer) + '\t' + unicode(self.ip)
class Router(models.Model):
name = models.CharField(max_length=50)
fqdn = models.CharField(max_length=50)
snmpport = models.IntegerField()
snmpcommunity = models.CharField(max_length=50)
def __unicode__(self):
return unicode(self.name)
class PeerStatus(models.Model):
router = models.ForeignKey(Router)
ipv4address = models.ForeignKey(IPv4Address)
state = models.IntegerField()
模板:
{% for peer in peers %}
{% for ipv4 in peer.ipv4address_set.all %}
ipv4: {{ ipv4.ip }}<br>
{% for state in ipv4.peerstatus_set.all %}
state: {{ state.state }}<br>
{% endfor %}
{% endfor %}
{% endfor %}
我刚刚意识到,我没有再次填充我的数据库(特别是PeerStatus表)后调试时间和时间再次...现在再次填充后,我意识到我的代码实际上工作...一点点的失误; - ) – woei