【发布时间】:2011-11-15 04:35:38
【问题描述】:
我有一个代表月份的数字,我想用月份名称替换它,日期过滤器不起作用:
{{ monthnumber|date:"M" }}
我想放置两个链接 - 下个月和上个月,但我只有月份数。
怎么做?
【问题讨论】:
-
对于其他提出此问题的人,请检查是否需要考虑您在使用 Django Date based Class based views 时尝试实现的目标
我有一个代表月份的数字,我想用月份名称替换它,日期过滤器不起作用:
{{ monthnumber|date:"M" }}
我想放置两个链接 - 下个月和上个月,但我只有月份数。
怎么做?
【问题讨论】:
您需要一个自定义模板过滤器来将数字转换为月份名称。如果您使用标准库中的 calendar 模块,则非常简单:
import calendar
@register.filter
def month_name(month_number):
return calendar.month_name[month_number]
使用示例:
{{ 5|month_name }}
将输出May
【讨论】:
好吧,这不是:
{{ monthnumber|date:"M" }}
你应该试试这个:
{{ datetimeobj|date:"M" }}
【讨论】:
【讨论】:
以防万一您不想格式化传递给 Django 模板的日期对象(就像其他答案清楚显示的那样),而是您更愿意简单地获取当前日期的月份编号; 这是您可以用来执行此操作的内置标签:
{% now "n" %}
来自文档:https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#now
这里是您可以与{% now [""] %} 一起使用的内置日期标签
https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#date
【讨论】: