【问题标题】:Proper QuerySet query正确的 QuerySet 查询
【发布时间】:2013-04-02 19:46:10
【问题描述】:

我在 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_idnamedescriptionnode_b_idname、@ 的最终结果987654327@ 根据Links 模型。如果您希望我进一步澄清,请告诉我。

【问题讨论】:

  • 您的问题不清楚。你能包括你的模型的简单定义和你想要的查询结果吗?

标签: django django-models django-queryset


【解决方案1】:

我可能误解了,但我走了。拥有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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-15
    • 2015-02-18
    • 2018-10-28
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多