2012-10-06 183 views
4

我想按月份/年將Jinja中的日期/時間列表分組。這是我現在所擁有的代碼:Jinja2按月份/年組

{% for group in EventsList|groupby('date') %} 
     <b>{{group.grouper}}</b><br /> 
     {% for event in group.list %} 
      <i>{{event.title}}</i> 
     {% endfor %} 
    {% endfor %} 

但問題是,它目前的具體日期羣體。我想按月份/年份(即2011年1月,2011年2月等)進行分組。

用Python代替它會更有效嗎?

謝謝!

回答

6

你可以先groupby('date.year')然後groupby('date.month')。

{% for year, year_group in EventsList|groupby('date.year') %} 
    {% for month, list in year_group|groupby('date.month') %} 
     <b>{{ month }} {{ year }}</b><br /> 
     {% for event in list %} 
      <i>{{event.title}}</i> 
     {% endfor %} 
    {% endfor %} 
{% endfor %} 
+0

謝謝!想知道,是否可以將{{月}}格式化爲長格式(即10月)而不是數字格式(即10)。我還在考慮一種替代方法,我只需在數據存儲中創建長表格月份/年的另一列(即「2012年10月」)......但這樣做效率很低。 – iceanfire

+0

您可以使用'{{month.strftime('%B')}}'。請參閱http://docs.python.org/2/library/datetime.html#strftime-strptime-behavior – liclac