【发布时间】:2013-02-24 08:53:29
【问题描述】:
我正在开发一个用于跟踪光纤电缆的 Django 应用程序。我遇到了我认为是相关管理器的问题,因为在某些模板中我可以让它做我想做的事,但在其他模板中我不能。
我正在尝试做的一个工作示例:
<ul>
{% for lanroom in building.lanroom_set.all %}
<li><a href="/lanrooms/{{ lanroom.id }}/">{{ lanroom.lan_room_name }}</a></li>
{% endfor %}
</ul>
这样做的目的是为我提供一组 LAN 房间,这些房间将建筑物作为外键详细查看。
我想做的是将一根电缆连接到转接板连接器。所以该模板具有以下内容:
<li>Date Added: {{ adaptorplateconnector.date_added }}</li>
<li>Connector Type in {{ adaptorplateconnector }}:</li>
<ul>
<li><a href="/connectortypes/{{ adaptorplateconnector.connector_type_id.id }}/">{{ adaptorplateconnector.connector_type_id.type }}</a></li>
</ul>
<li>Strand connected to {{ adaptorplateconnector }}:
<ul>
{% for strand in adaptorplateconnector.strand_set.all %}
<ali><a href="/strands/{{ strand.id }}/">{{ strand }}</a></li>
{% endfor %}
</ul>
然而,我没有得到任何连接到转接板连接器的股线。以下是相关模型:
class AdaptorPlateConnector(models.Model):
adaptor_plate_id = models.ForeignKey('AdaptorPlate')
connector_type_id = models.ForeignKey('ConnectorType')
strand_position = models.CharField(max_length=200)
date_added = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return self.strand_position
class Strand(models.Model):
cable_id = models.ForeignKey('Cable')
end1_plate_connector_id = models.ForeignKey('AdaptorPlateConnector', related_name= 'end1_adaptor_plate_connector')
end2_plate_connector_id = models.ForeignKey('AdaptorPlateConnector', related_name= 'end2_adaptor_plate_connector')
in_use = models.CharField(max_length=200)
desc = models.CharField(max_length=200)
date_added = models.DateTimeField(auto_now_add=True)
def __unicode__(self):
return "End1: " + self.end1_plate_connector_id.__unicode__() + ", End2: " + self.end2_plate_connector_id.__unicode__() + ", Cable: " + self.cable_id.__unicode__()
如何获取与正在查看的 AdaptorPlateConnector 相关的链列表?任何见解将不胜感激。我正在使用通用视图,此模板用于 DetailView
【问题讨论】:
-
您的代码看起来不错。您确定您的数据库中存在
Strand和AdaptorPlateConnector实例吗? -
我在 django 管理面板中创建了正确链接的测试条目,所以我不确定为什么它们不会在视图中链接在一起
标签: django django-models django-templates