Python函数,用于获取过去X个月的列表

Python函数,用于获取过去X个月的列表,python,django,Python,Django,正在尝试为我的Django博客存档制作模板标记,以显示一年中的最后四个月,即: <a>October 2017</a> <a>September 2017</a> <a>August 2017</a> <a>July 2017</a> 这引发了 Type错误-“DATETIME.DATETIME”对象不是可迭代的< /COD> < /P> > P>您可以考虑DATEUTIL.RCORE from

正在尝试为我的Django博客存档制作模板标记,以显示一年中的最后四个月,即:

<a>October 2017</a>
<a>September 2017</a>
<a>August 2017</a>
<a>July 2017</a>

这引发了<代码> Type错误-“DATETIME.DATETIME”对象不是可迭代的< /COD> < /P> > P>您可以考虑DATEUTIL.RCORE

from dateutil.rrule import *
from datetime import date

months = map(
    date.isoformat,
    rrule(MONTHLY, dtstart=four_months, until=today)
)

如果您希望在一年的最后四个月手动执行,您可以在此处找到更好的方法

today = datetime.today()
months = [today.replace(month=m).strftime(format) for m in range(9,13)]
返回

['September 2017', 'October 2017', 'November 2017', 'December 2017']

请尝试以下方法

`import datetime
def get_past_months(previos_month_count):
    month_list=[]
    today = datetime.date.today()
    first = today.replace(day=1)
    last_month = first - datetime.timedelta(days=1)
    month_list.append(last_month.strftime("%Y-%m"))
    for i in range(1, previos_month_count):
        first = last_month.replace(day=1)
        last_month = first - datetime.timedelta(days=1)
        month_list.append(last_month.strftime("%Y-%m"))
    return month_list`

[今天-范围(4)内i的relativedelta(months=i)]
?谢谢,这正是我想要的!
`import datetime
def get_past_months(previos_month_count):
    month_list=[]
    today = datetime.date.today()
    first = today.replace(day=1)
    last_month = first - datetime.timedelta(days=1)
    month_list.append(last_month.strftime("%Y-%m"))
    for i in range(1, previos_month_count):
        first = last_month.replace(day=1)
        last_month = first - datetime.timedelta(days=1)
        month_list.append(last_month.strftime("%Y-%m"))
    return month_list`