Необходимо рассчитать общее время по месяцам в django
Я создал функцию для вычисления общего времени.
def emp_attendance(request):
attendance_list_ad = Attendance.objects.all()
total = None
for item in attendance_list_ad:
if item.total_time is not None:
if total is None:
total = item.total_time
else:
total += item.total_time
return render(request, 'employee/emp_attendance.html'{'attendance_list_ad': attendance_list_ad, 'total':
total})
while print:
дата посещения = 2023-01-09 общее_время = 1: 00: 00
Итак, мой вопрос заключается в том, что на первой странице эта функция вычисляет общее время всех входов, которые находятся в базе данных. Но я хочу вычислить общее время по месяцам, так как в дате посещения у нас есть месяц 01. Тогда общее время будет вычислено
Я не уверен, что полностью понимаю ваш вопрос.
Возможно, модуль datetime в Python будет вам полезен, возможно, нет.
Основываясь на ваших комментариях к ответу Trobosko, мне кажется, что у вас есть набор записей в базе данных, и вам нужно отфильтровать результаты, не относящиеся к текущему месяцу. (Далее следуют действия, которые вы хотите выполнить над "чистыми" данными, с которыми вы, похоже, разобрались)
Это не должно быть сложно сделать, я смогу помочь, если вы предоставите некоторую информацию о вашей базе данных (возможно, какую именно, какие таблицы и запрос?). Возможно, также формат хранимых дат.
Если вы хотите получить сумму общего времени за каждый месяц, вы можете сделать это следующим образом...
from django.db.models import Sum
attendance_list_ad = Attendance.objects.filter(Date_field__year='2022').values_list('month').annotate(total_time=Sum('total_time'))
Но если вы используете поле dateTime, а не просто месяц для каждого элемента. Вы можете попробовать сделать следующее, хотя я сомневаюсь, что это сработает.
from django.db.models import Sum
attendance_list_ad = Attendance.objects.filter(Date_field__year='2022').values_list('Date_field__month').annotate(total_time=Sum('total_time'))