2016-12-09 27 views
1

我有一個視圖,其中我正在打印last_namemrn的患者。由於患者可以多次給予特定的診斷,因此我想根據患者和診斷進行分組。如何使用Jinja2模板添加嵌套groupby

我谷歌搜索瘋狂,找不到任何關於應用嵌套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 

但是,它打印了其中的兩個,而不是一個。

回答

0

很多把玩左右後,我得到了它:

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

給了我希望的單個實例。底部的東西是一種分心。