0

我已阅读内容,但我还有一个问题:如何在模板中重命名 country.grouper?我“分组”工作日 - week_days.grouper,它就像 1、2、3 等。但我想在模板中更改它 - 星期日、星期一等。怎么做?

4

1 回答 1

1

定义模板标签应该可以帮助您。它必须放入一个文件中,例如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>

如果您使用的是日期对象,则可以使用内置日期模板标签将日期转换为相应的工作日:

{% 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>
于 2012-10-20T20:13:36.787 回答