【发布时间】:2017-06-21 11:35:53
【问题描述】:
在我的网站上,我有一个页面,您可以在其中通过 javascript 日历小部件输入开始和结束日期。它将查询数据库并返回结果。这是我的看法
class flagfilter(ListView, View):
form_class = FlagReportForm
template_name = 'free/flagreport.html'
paginate_by = 20
def get(self, request):
form = self.form_class(None)
return render(request, self.template_name, {'form': form})
def post(self, request):
form = self.form_class(request.POST)
if form.is_valid():
start_date = request.POST.get('start_date', '')
end_date = request.POST.get('end_date', '')
user = request.user
s = datetime.datetime.strptime(str(start_date), '%m/%d/%Y')
e = datetime.datetime.strptime(str(end_date), '%m/%d/%Y')
if e == s:
e = e + datetime.timedelta(days=2)
s_filtered = s.strftime('%Y-%m-%d')
e_filtered = e.strftime('%Y-%m-%d')
punch = Punch.objects.filter(date__range=[str(s_filtered),str(e_filtered)]).order_by('-date')
punches = punch.filter(user=user)
context = {'punches': punches}
return render(request, 'free/flagreport2.html', context)
return render(request, self.template_name, {'form': form})
我的问题是,如果您的日期范围在今天结束,它将不会返回当天的对象。我添加了这一行:
if e == s:
e = e + datetime.timedelta(days=2)
我这样做是因为如果您将开始和结束日期作为当前日期,它将不会返回今天的打孔对象。这解决了问题,但我仍然有问题。如果您输入一个日期范围,其开始日期为上周某个时间。结束日期是当天。它仍然不会返回当前的打孔对象。所以我想用检查结束日期是否为当前日期的代码替换此代码,如果是,则在结束日期上增加一天。我已经尝试了几件事,但无法正常工作。任何帮助表示赞赏!
【问题讨论】: