首页 > 解决方案 > 包括 utils.py django 中使用的 looged

问题描述

我在 utils.py 中创建了一个 HTML 日历,它在其中创建了我想要制作的事件,以便它使用记录的用户的事件。使用用户名创建了一个会话。

实用程序.py

from datetime import datetime, timedelta
from calendar import HTMLCalendar
from .models import Event
from myProject.helper import get_current_user


class Calendar(HTMLCalendar):
    def __init__(self, year=None, month=None):
        self.year = year
        self.month = month
        super(Calendar, self).__init__()

    # formats a day as a td
    # filter events by day
    def formatday(self, day, events):
        events_per_day = events.filter(start_time__day=day)
        d = ''
        
        for event in events_per_day:
            d += f'<li> {event.get_html_url} </li>'
        
        if day != 0:
            return f"<td><span class='date'>{day}</span><ul> {d} </ul></td>"
        return '<td></td>'

    # formats a week as a tr 
    def formatweek(self, theweek, events):
        week = ''
        for d, weekday in theweek:
            week += self.formatday(d, events)
        return f'<tr> {week} </tr>'

    # formats a month as a table
    # filter events by year and month
    def formatmonth(self, withyear=True):
        events = Event.objects.filter(start_time__year=self.year, start_time__month=self.month)

        cal = f'<table border="0" cellpadding="0" cellspacing="0" class="calendar">\n'
        cal += f'{self.formatmonthname(self.year, self.month, withyear=withyear)}\n'
        cal += f'{self.formatweekheader()}\n'
        for week in self.monthdays2calendar(self.year, self.month):
            cal += f'{self.formatweek(week, events)}\n'
        return cal

有人对我如何实现这一目标有解决方案吗?

标签: pythondjango

解决方案


推荐阅读