【发布时间】:2020-07-30 00:07:49
【问题描述】:
在视图中调用get_week实现。 直接打印为模板的'now'正常显示,但是通过模块输出的get_week的结果是作为1周前的值输出的。 如果您修复了类似的错误,请帮助 作为参考,下面的源代码是一个生成周报的函数。
#: 금주 보고서는 read/modify
@login_required
def weekly_report_view(request):
context = {
'site_title': '취약점 Dashboard',
'site_header': '취약점 Dashboard',
'user': request.user,
'has_permission': True,
'now': datetime.datetime.now()
}
this_week = False
week_num = request.GET.get('week_num')
if week_num is None:
start_date, end_date, week_num = get_week()
stats = Statistics2020.objects.filter(week_num=week_num)
if len(stats) == 0:
return redirect('/dashboard/stat/weekly/create')
stat = stats[0]
if stat.end_date >= datetime.date.today():
this_week = True
stat_date_update(stat.week_num, stat.start_date, stat.end_date)
else:
pass
context['stat'] = Statistics2020.objects.get(week_num=week_num)
context['raw'] = json.loads(stat.raw)
context['this_week'] = this_week
return render(request, template_name='dashboard/weekly_report.html', context=context)
def get_week(today=datetime.datetime.now().date()):
shift = BASE_WEEK_START - 1
print(today)
week_number = today.isoweekday() - shift
if week_number <= 0:
week_number += 7
startdate = today - datetime.timedelta(days=week_number-1)
enddate = startdate + datetime.timedelta(days=6)
#print('%s~%s'% (startdate, enddate))
return startdate, enddate, int(startdate.isocalendar()[1])
【问题讨论】:
-
before 1 week= 服务器启动日期