用djang的年和月创建和渲染结构

2024-05-13 18:16:22 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的博客应用程序中,我需要一个结构(在上下文处理器中作为变量创建),它将存储月数和连续5个月对应的年份,直到当前月份为止。所以如果当前月份是12月,我们将有年份:2010和月份:12、11、10、9、8。如果月份是一月,我们将有2010年:月份:1和年份:2009月份:12、11、10、9。我的目标是以以下形式显示存档:

- 2010
    - January
- 2009
    - December
    - November
    - October
    - September

如何创建它,我应该使用什么结构?那怎么表现呢?我想我需要一些嵌套结构,但是在django<;1.2中可以呈现这种结构?
我自己开始的,但在某个时候完全迷失了方向:

^{pr2}$

Tags: djangolt应用程序目标处理器方向结构形式
1条回答
网友
1楼 · 发布于 2024-05-13 18:16:22

How to create it and what structure should I use ?

我要一份年-月元组的清单。下面是一个示例实现。您需要使用方便的python-dateutil库来实现这一点。在

from datetime import datetime
from dateutil.relativedelta import relativedelta

def get_5_previous_year_months(a_day):
    """Returns a list of year, month tuples for the current and previous 
    5 months relative to a_day"""
    current_year, current_month = a_day.year, a_day.month
    first_of_month = datetime(current_year, current_month, 1)
    previous_months = (first_of_month - relativedelta(months = months)
            for months in range(0, 5))
    return ((pm.year, pm.month) for pm in previous_months) 

def get_current_and_5_previous_months():
    return get_5_previous_year_months(datetime.today())

And then how to show it ?

这里有一个非常简单的方法来展示它。我认为您可以通过将<ul>元素替换为<div>并对其进行适当的样式设置来清理它。在

^{pr2}$

其中previous_year_months是与get_current_and_5_previous_months返回的结果相对应的上下文变量。在

相关问题 更多 >