Python 包括utils.py django中使用的Louged
我已经在utils.py中创建了一个HTML日历,它在其中创建了我想要创建的事件,以便使用记录的用户的事件。有一个使用用户名创建的会话 utils.pyPython 包括utils.py django中使用的Louged,python,django,Python,Django,我已经在utils.py中创建了一个HTML日历,它在其中创建了我想要创建的事件,以便使用记录的用户的事件。有一个使用用户名创建的会话 utils.py from datetime import datetime, timedelta from calendar import HTMLCalendar from .models import Event from myProject.helper import get_current_user class Calendar(HTMLCalen
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
从datetime导入datetime,timedelta
从日历导入HTMLCalendar
from.models导入事件
从myProject.helper导入获取当前用户
课程日历(HTMLCalendar):
定义初始(自我,年=无,月=无):
self.year=年
self.month=月
超级(日历,自我)。\uuuu初始化
#将一天的格式设置为td
#按天筛选事件
def formatday(自身、日期、事件):
events\u per\u day=events.filter(开始时间\u day=day)
d=“”
对于每天事件中的事件:
d+=f'{event.get_html\u url} '
如果有一天0:
返回f“{day}{d}
”
返回“”
#将一周的格式设置为tr
def formatweek(自我、theweek、事件):
周=“”
对于d,一周中的工作日:
周+=自我形成日(d,事件)
返回f'{week}'
#将月份格式化为表格
#按年度和月份筛选事件
def formatmonth(self,withyear=True):
events=Event.objects.filter(开始时间年=self.year,开始时间月=self.month)
cal=f'\n'
cal+=f'{self.formatmonthname(self.year,self.month,withyear=withyear)}\n'
cal+=f'{self.formatweekheader()}\n'
对于self.monthdays2日历中的周(self.year,self.month):
cal+=f'{self.formatweek(week,events)}\n'
返回cal
有没有人能解决我如何做到这一点