Я работаю над проектом Django, который состоит из прогнозирования предстоящей кредиторской задолженности (AP) и дебиторской задолженности (AR). Тем не менее, я наткнулся на проблему, так как я не знаю, как генерировать недели определенного месяца. Например, в апреле месяце я бы хотел, чтобы даты были разбиты на: 01/04/20 - 10/04/20 (следующая пятница), 11/04/20 - 17/04/20 (пятница после что) и так далее и тому подобное. В течение каждой недели будет добавляться поле «сумма», чтобы показать общую сумму, ожидаемую к оплате / получению в течение этой недели. Вот мой код, и мне удалось сгруппировать наборы запросов по месяцам, а поле «сумма» - по месяцам. Однако я не слишком уверен, как сгруппировать его по неделям месяца, так как функция ExtractWeek Django работает на годовой основе.
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). Спасибо за ваше время и вся помощь приветствуется!