мы пытаемся создать функцию календаря в Python. мы создали небольшую систему управления контентом, требование заключается в том, что в верхнем правом углу веб-сайта будет раскрывающийся список, в котором будут указаны параметры - Месяцы - 1 месяц, 2 месяца, 3 месяца и т. .., если пользователь выбирает 8 месяцев, он должен показать количество сообщений за последние 8 месяцев. проблема в том, что мы попытались написать небольшой код, который выполнял бы вычисления за месяц, но ошибка в том, что он не учитывает месяцы после текущего года, он показывает количество сообщений только за месяцы текущего года.
например: если пользователь выбирает 3 месяца, он будет показывать счет за l 3 месяца, т.е. текущий месяц и предыдущие 2 месяца, но если пользователь выберет опцию более 4 месяцев, он не будет учитывать месяцы с в предыдущем году он по-прежнему показывает только месяц текущего года.
Я вставляю код ниже: -
def __getSpecifiedMailCount__(request, value):
dbconnector= DBConnector()
CdateList= "select cdate from mail_records"
DateNow= datetime.datetime.today()
DateNow= DateNow.strftime("%Y-%m")
DateYear= datetime.datetime.today()
DateYear= DateYear.strftime("%Y")
DateMonth= datetime.datetime.today()
DateMonth= DateMonth.strftime("%m")
#print DateMonth
def getMonth(value):
valueDic= {"01": "Jan", "02": "Feb", "03": "Mar", "04": "Apr", "05": "May", "06": "Jun", "07": "Jul", "08": "Aug", "09": "Sep", "10": "Oct", "11": "Nov", "12": "Dec"}
return valueDic[value]
def getMonthYearandCount(yearmonth):
MailCount= "select count(*) as mailcount from mail_records where cdate like '%s%s'" % (yearmonth, "%")
MailCountResult= MailCount[0]['mailcount']
return MailCountResult
MailCountList= []
MCOUNT= getMonthYearandCount(DateNow)
MONTH= getMonth(DateMonth)
MailCountDict= {}
MailCountDict['monthyear']= MONTH + ' ' + DateYear
MailCountDict['mailcount']= MCOUNT
var_monthyear= MONTH + ' ' + DateYear
var_mailcount= MCOUNT
MailCountList.append(MailCountDict)
i=1
k= int(value)
hereMONTH= int(DateMonth)
while (i < k):
hereMONTH= int(hereMONTH) - 1
if (hereMONTH < 10):
hereMONTH = '0' + str(hereMONTH)
if (hereMONTH == '00') or (hereMONTH == '0-1'):
break
else:
PMONTH= getMonth(hereMONTH)
hereDateNow= DateYear + '-' + PMONTH
hereDateNowNum= DateYear + '-' + hereMONTH
PMCOUNT= getMonthYearandCount(hereDateNowNum)
MailCountDict= {}
MailCountDict['monthyear']= PMONTH + ' ' + DateYear
MailCountDict['mailcount']= PMCOUNT
var_monthyear= PMONTH + ' ' + DateYear
var_mailcount= PMCOUNT
MailCountList.append(MailCountDict)
i = i + 1
#print MailCountList
MailCountDict= {'monthmailcount': MailCountList}
reportdata = MailCountDict['monthmailcount']
#print reportdata
return render_to_response('test.html', locals())