2012-10-20 63 views
0

我已閱讀this,但我還有一個問題:如何在模板中重命名country.grouper?我'組'週日 - week_days.grouper,它像1,2,3等,但我想改變它在模板 - 星期一,星期一等。如何做到這一點?重組重命名石斑魚

回答

1

A custom template tag應該可以幫到你。它必須放在一個文件中,例如在一個文件夾中的應用my_custom_filters.py稱爲templatetags:

from django import template 
register = template.Library() 

def get_weekday(value): 
    """returns the weekday for the given number - 0 indexed""" 
    wd_list = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] 
    return wd_list[int(value)] 

這個自定義過濾器將使用這樣的:

{% load my_custom_filters %} 

{% regroup day by weekdays as weekday_list %} 

<ul> 
{% for day in weekday_list %} 
    <li>{{ day.grouper|get_weekday }} 
    <ul> 
     {% for item in day.list %} 
      <li>{{ item.name }}: {{ item.population }}</li> 
     {% endfor %} 
    </ul> 
    </li> 
{% endfor %} 
</ul> 

如果您使用的是最新的對象可以使用內置的date模板標籤將日期轉換爲相應的工作日:

{% regroup day by weekdays as weekday_list %} 

<ul> 
{% for day in weekday_list %} 
    <li>{{ day.grouper|date:"w" }} 
    <ul> 
     {% for item in day.list %} 
      <li>{{ item.name }}: {{ item.population }}</li> 
     {% endfor %} 
    </ul> 
    </li> 
{% endfor %} 
</ul> 
+0

這很奇怪 - 它不起作用。我在day.grouper值= 1,2,5 – tim

+0

上測試它,你會得到一個錯誤或者什麼都沒有發生? –

+0

什麼也沒有發生。 (null) – tim