【问题标题】:How to add nested groupby using Jinja2 templates如何使用 Jinja2 模板添加嵌套 groupby
【发布时间】:2017-04-25 08:18:46
【问题描述】:

我有一个视图,我正在打印 last_namemrn 的患者。由于可以为患者多次给出特定诊断,因此我想按患者和诊断进行分组。

我在 Google 上发疯了,在应用嵌套 groupby 过滤器时找不到任何东西,就像我试图实现的那样(我很难相信,因为我的用例并不少见)。

无论如何,我尝试了各种嵌套策略,我能想到的最好的方法是:

{% for item in patient_diagnoses  %}
    {% for group in patient_diagnoses | groupby('dx_name') %}
        {{ group.grouper }}: {{ group.list | groupby('mrn') }}

    {% endfor %}

    mrn: {{ item.mrn }} dx: {{ item.dx_name }}
{% endfor %}

这有点用,但不是单行输出,而是我得到 2 行(我检查了特定患者有 8 个相同类型的诊断)。我希望我的实现只是因为对 Jinja2 没有非常丰富的经验而搞砸了。

编辑

数据(从 SQLAlchemy 返回)看起来像,唯一的区别是dx_date

{'dx_name': u'Atrial septal defect', 'first_name': u'Test', 'last_name': u'Patient', 'mrn': u'12345678', 'dx_date': u'1/28/2015'}

{'dx_name': u'Atrial septal defect', 'first_name': u'Test', 'last_name': u'Patient', 'mrn': u'12345678', 'dx_date': u'1/28/2014'}

{'dx_name': u'Atrial septal defect', 'first_name': u'Test', 'last_name': u'Patient', 'mrn': u'12345678', 'dx_date': u'1/28/2013'}

{'dx_name': u'Atrial septal defect', 'first_name': u'Test', 'last_name': u'Patient', 'mrn': u'12345678', 'dx_date': u'1/28/2012'}

{'dx_name': u'Atrial septal defect', 'first_name': u'Test', 'last_name': u'Patient', 'mrn': u'12345678', 'dx_date': u'1/28/2011'}

...

因此,我希望在我的模板上只呈现一个实例:

mrn: 12345678 dx: Atrial septal defect 

但是,它打印的是其中的两个,而不是一个。

【问题讨论】:

    标签: python flask filter group-by jinja2


    【解决方案1】:

    经过一番折腾,我明白了:

    {% for group in value_columns | groupby('dx_name') %}
        {% for group2 in group.list | groupby('mrn') %}
           mrn: {{ group2.grouper }} dx: {{ group.grouper }}
        {% endfor %}
    {% endfor %}
    

    给了我想要的单个实例。底部的东西让人分心。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 2016-07-18
      • 2017-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多