Django 在重组中重命名石斑鱼
我已经读过了,但我还有一个问题:如何在模板中重命名country.gropper?我“分组”周日-周日。grouper,类似于1、2、3等。但我想在模板中更改它-周日、周一等。如何操作?A应该在这里帮助您。必须将其放入应用程序中名为templatetags的文件夹中的文件中,例如Django 在重组中重命名石斑鱼,django,templates,Django,Templates,我已经读过了,但我还有一个问题:如何在模板中重命名country.gropper?我“分组”周日-周日。grouper,类似于1、2、3等。但我想在模板中更改它-周日、周一等。如何操作?A应该在这里帮助您。必须将其放入应用程序中名为templatetags的文件夹中的文件中,例如my_custom_filters.py: from django import template register = template.Library() def get_weekday(value): "
my_custom_filters.py
:
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>
{%load my\u custom\u filters%}
{%按工作日重新分组为工作日_列表%}
{工作日中的天的%u列表%}
- {{day.石斑鱼{get|u weekday}}
{day.list%中项目的%s}
- {{item.name}}:{{item.population}
{%endfor%}
{%endfor%}
如果您使用的是日期对象,则可以使用内置模板标记将日期转换为相应的工作日:
{% 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>
{%按工作日重新分组为工作日_列表%}
{工作日中的天的%u列表%}
- {day.石斑鱼|日期:“w”}
{day.list%中项目的%s}
- {{item.name}}:{{item.population}
{%endfor%}
{%endfor%}
这很奇怪-它不工作。我在day.grouper values=1、2、5上测试它。问题可能是date筛选器需要一个date对象作为输入,不能处理字符串。因此,您可以尝试使用datetime对象而不是表示日期的字符串创建列表。或者编写自己的自定义模板过滤器。将更新我的答案以包含它。在def get_weekday(值,arg)中-我删除“arg”并且它可以工作。谢谢