我正在研究Django项目,该项目包括预测即将到来的应付帐款(AP)和应收帐款(AR)。但是,我偶然发现了一个问题,因为我不知道如何生成特定月份的几周。例如,对于4月,我希望将日期分为以下日期:01/04/20-10/04/20(下一个星期五),11/04/20-17/04/20(下个星期五)等等)。在每个星期内,将添加一个字段“金额”以显示该周内预期要支付/接收的总金额。到目前为止,这是我的代码,我设法按月对查询集进行分组,并按月对“金额”字段进行分组。但是,由于Django的ExtractWeek函数每年工作,因此我不太确定如何按一个月的星期对它进行分组。
views.py
class APView(LoginRequiredMixin,CreateView):
model = AP
form_class = APForm
template_name = 'cash/ap.html'
def get_context_data(self, **kwargs):
context = super(APView, self).get_context_data(**kwargs)
time_range = []
done = False
time = self.kwargs['time']
start = int(self.kwargs['start'])
end = int(self.kwargs['end'])
context['bp'] = BusinessPartners.objects.prefetch_related('ap_set').all()
context['ap'] = BusinessPartners.objects.annotate(timeline=Extract('ap__due_date', time)).values('timeline').annotate(total=Sum('ap__amount')).values('timeline','total', 'bp_name')
while not done:
time_range.append(start)
if start == end:
done = True
break
start += 1
context['timeline'] = time_range
context['range'] = time
return context
def get_success_url(self):
return reverse('home')
我希望传递包含一个月中一周中的某几天的查询集(这意味着该操作是在views.py中完成的),或者是在模板本身内部进行该操作。基本上,理想情况下,我希望在模板中以表格形式查看此数据(列为月),然后单击一个月,它会扩展为其周的4列,并且列名将更改到该周的日期(例如11/04/20-17/04/20)。谢谢您的宝贵时间,我们将为您提供所有帮助!