我正在用Django创建一个日历应用程序。日历必须是verti

2024-10-03 11:24:16 发布

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

现在我已经意识到这一点。但是我需要vertical calendar(对不起,还没有找到任何英文的)在左边,我们在上面有工作日标题和月份名称

我开始重写python-calendarHTMLCalendar方法。我想写一个新的formatweekdayrow方法,它将生成一行星期一,星期二。。。。星期天。但我被卡住了,因为我不完全理解这些方法是如何工作的

所以问题是,我应该考虑一下我的想法写formatweekdayrow,还是不可能这样做垂直日历?或者有没有更简单更聪明的方法


Tags: 方法名称标题calendar意识vertical月份工作日
1条回答
网友
1楼 · 发布于 2024-10-03 11:24:16

我重写了几个方法,得到了我需要的

class Vertical(HTMLCalendar):

    def formatweekrow(self, theweeks, daynum):
        """
        Return a complete week as a table row.
        """
        v = []
        s = v.append
        s('<tr>')
        for theweek in theweeks:
            for (d, wd) in theweek:
                if wd == daynum:
                    s(self.formatday(d, wd))
        s('</tr>')
        return ''.join(v)

    def formatmonth(self, theyear, themonth, withyear=True):
        """
        Return a formatted month as a table.
        """
        cnt = 0
        v = []
        theweeks = self.monthdays2calendar(theyear, themonth)
        a = v.append
        a('<table border="0" cellpadding="0" cellspacing="0"     class="">')
        a('\n')
        a(self.formatmonthname(theyear, themonth, withyear=withyear))
        a('\n')
        a(self.formatweekheader())
        a('\n')
        while cnt < 7:
            a(self.formatweekrow(theweeks, cnt))
            a('\n')
            cnt += 1
        a('</table>')
        a('\n')
        return ''.join(v)

相关问题 更多 >