django 正在将月份编号转换为月份名称

2lpgd968  于 2022-12-14  发布在  Go
关注(0)|答案(5)|浏览(204)

下面的代码正确地获取了月份号,但是我想获取月份名而不是月份号。我试过在模板中使用Django日期过滤器,以及www.example.com中的日历工具views.py,但是似乎不起作用

查看次数.py

def ticket(request, month, year):
    airline = Airline.objects.get(id=request.user.airline_id)
    for ts in Timestamp.objects.filter(
            airline=airline,
            usage_on__year=year,
            usage_on__month=month
    ):
        pass

    return TemplateResponse(request, 'club/al_history.html', {
        'usage_month': month,
        'usage_year': year,
        'timestamp': timestamp,
    })

所有.html

{% extends 'base.html' %}

{% block content %}
<h3>{{ usage_month }}, {{usage_year}}</h3>
{% endblock %}
v9tzhpje

v9tzhpje1#

您可以使用calendar.month_name根据其文档,它是:

一个数组,表示当前区域设置中一年中的月份。
因此,您只需这样使用它:

calendar.month_name[month]

完整示例,区域设置为en_US

>>> import calendar
>>> month = 1
>>> calendar.month_name[month]
'January'
hi3rlvi2

hi3rlvi22#

您可以使用日历模块:

calendar.month_name[3]

返回March
有关详细信息,请查看this question

sqserrrh

sqserrrh3#

创建一个字典,key =月份编号,value =月份名称,如下所示:

my_dict = {"01": "January", "02": "February", etc...}

那么你可以这样使用这个法令

print(my_dict[month])
5uzkadbs

5uzkadbs4#

我使用www.example.com中的date实用程序解决了这个问题views.py,如下所示:

'usage_date': date(int(year), int(month), 1)

然后在模板中,使用Django快捷方式呈现月份名称。
如果我希望月份名称根据所选语言进行更改,则此方法非常有效。

snz8szmq

snz8szmq5#

根据答案here

import datetime

monthinteger = 12

month = datetime.date(1900, monthinteger, 1).strftime('%B')

print(month)

会给予“December”。同样,用“%b "替换”% b"会给出缩写形式eidogg.“Dec”。

相关问题