【发布时间】:2017-04-25 08:18:46
【问题描述】:
我有一个视图,我正在打印 last_name 和 mrn 的患者。由于可以为患者多次给出特定诊断,因此我想按患者和诊断进行分组。
我在 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