Django:嵌套的SQL查询

时间:2014-02-04 19:54:12

标签: python sql django

以下是我的模型类:

class Ticket(models.Model):
    user = models.ForeignKey(User)
    draw = models.ForeignKey(Draw)
    numbers= models.CharField(max_length=25)

class Draw(models.Model):
    numbers = models.CharField(max_length=25)

我最初有一个查询,它将我的所有绘图对象分组,并给出绘制对象的每个id的计数:

Ticket.objects.values('draw').annotate(total = models.Count('draw'))

列出:

{'draw': 55L, 'total': 1}
{'draw': 13L, 'total': 16}
{'draw': 12L, 'total': 4}

现在我要做的是显示与每一行相关的draw.numbers。我试过通过模板直接访问它,但它没有用。我以为我可以用这些绘图ID进行另一个查询来查找相关的数字。我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

以下代码将遵循外键关系并打印与numbers对象关联的所有draw。我不确定annotate结果是否相同。

Ticket.objects.values('draw', 'draw__numbers')

至于查询绘图ID以查找其关联数字,您可以迭代列表并查询draw个对象:

draw_ids = [i['draw'] for i in input_list]
output_list = Draw.objects.filter(numbers__in=draw_ids)