【问题标题】:Django Template set of setsDjango 模板集
【发布时间】:2014-02-19 15:53:12
【问题描述】:

django模板中是否可以访问一组集合。

即。 a.b_set.c_set.count

所以它得到了所有与 c 相关的 b 对象相关的所有 c 对象的计数。

我知道我可以在后端进行查询,即 c.objects.filter(b__a=a),但是我希望仅从模板中进行。

干杯, 埃米特

【问题讨论】:

    标签: django django-models django-templates


    【解决方案1】:

    这可能无法从模板中完成,因为它从未打算使用“复杂”逻辑。您应该在视图中执行此操作。 由于您想要获得的是“每个查询集”的新属性,因此这不是单行的。

    例子:

    as = a.objects.all()
    for a in as:
        a.b_c_count = c.objects.filter(b__a=a).count()
    

    并像在模板中那样使用它:

    a.b_c_count
    

    如果你有很多 a 对象,这将是一个瓶颈,所以你可能想尝试extra 方法(并使用 as = a.objects.all().extra(*parameters)),或者甚至是原始 sql。

    【讨论】:

      猜你喜欢
      • 2014-08-05
      • 2018-12-20
      • 1970-01-01
      • 2019-03-31
      • 2018-03-23
      • 1970-01-01
      • 1970-01-01
      • 2023-04-11
      • 2013-06-30
      相关资源
      最近更新 更多