【问题标题】:Django: Nested SQL QueriesDjango:嵌套 SQL 查询
【发布时间】:2014-02-04 19:54:11
【问题描述】:

这是我的模型类:

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 做另一个查询来找到它们的相关数字。我不知道该怎么做。

【问题讨论】:

    标签: python sql django


    【解决方案1】:

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

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

    至于查询draw ids以找到它们的关联数字,您可以迭代列表并查询draw对象:

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

    【讨论】:

    猜你喜欢
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 2017-11-29
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多