我在Django中有两个模型:其中一个是一堆条目,另一个模型是链接表 - 它基本上将一个条目映射到另一个条目,所以它有一个entry_a_id和一个entry_b_id字段...我该怎么办编写一个QuerySet查询来正确选择第一个条目的相关字段,然后选择第二个字段吗?
===编辑===
以下是一个例子:
class Nodes(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=45)
description = models.CharField(max_length=255)
class Links(models.Model):
id = models.AutoField(primary_key=True)
node_a_id = models.ForeignKey('Nodes')
node_b_id = models.ForeignKey('Nodes')
所以,有了说(或打字),我希望能够弄清楚如何得到node_a_id
,name
,description
,{{1}的最终结果根据{{1}}模型,},node_b_id
,name
。如果您希望我进一步澄清,请告诉我。
答案 0 :(得分:0)
我可能误解了但是我走了。拥有Link
对象:
>>> link = Links.objects.all()[0]
您可以自动访问对外关系的字段(node_a_id
和node_b_id
)。有了它,您可以执行以下操作:
>>> link = Links.objects.all()[0]
>>> link.node_a_id.id
1
>>> link.node_a_id.name
'Name for node A'
>>> link.node_a_id.description
'Description for node B'
>>> link.node_b_id.id
2
>>> link.node_b_id.name
'Name for node B'
>>> link.node_b_id.description
'Description for node B'
作为旁注,使用id
作为自动递增主键字段是没有意义的,因为您可以免费获得该字段:AutoField和Automatic primary key fields