Django queryset для текущего года

У меня есть запрос, написанный для получения некоторых вещей из базы данных и отображения на моем сайте, этот запрос получает все данные из базы данных, но что если я хочу получить данные только за текущий год

def get(self, request, *args, **kwargs):
    filters = self.get_filters()

    result = Model.objects.all().filter(*filters).distinct().aggregate(
        t=Sum('t'),
        b=Sum('b'),
    )

    result2 = Model.objects.all().filter(*filters).distinct().aggregate(
        past_due=Sum('balance', filter=Q(due_date__lt=timezone.now()))
    )

    zero = Decimal('0.00')

    total = result['t'] or zero
    balance = result['b'] or zero
    past_due = result2['past_due'] or zero
    amount_received = t - b

Я думаю, что filter=Q(due_date__year=datetime.now().date().year) должен работать для вас, если я правильно понял ваш вопрос.

Это сработало для меня

result = Model.objects.all().filter(*filters, created__year=datetime.now().year).distinct().aggregate(
            t=Sum('t'),
            b=Sum('b'),
        )
    
        result2 = Model.objects.all().filter(*filters, created__year=datetime.now().year).distinct().aggregate(
            past_due=Sum('balance', filter=Q(due_date__lt=timezone.now()))
        )
Вернуться на верх