正确的QuerySet查询

时间:2013-04-02 19:46:10

标签: django django-models django-queryset

我在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_idnamedescription,{{1}的最终结果根据{{​​1}}模型,},node_b_idname。如果您希望我进一步澄清,请告诉我。

1 个答案:

答案 0 :(得分:0)

我可能误解了但是我走了。拥有Link对象:

>>> link = Links.objects.all()[0]

您可以自动访问对外关系的字段(node_a_idnode_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作为自动递增主键字段是没有意义的,因为您可以免费获得该字段:AutoFieldAutomatic primary key fields