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

Я работаю над проектом django, в котором администратор назначает работу пользователям, загружая работу каждому пользователю, а пользователь может видеть только ту работу, которую он назначил. Мне нужен способ получить общую сумму за все работы, выполненные пользователем к концу месяца. У меня есть модель Work, и в ней есть поле Pay_Amount, которое является суммой за одну работу, мне нужен способ добавить Pay_Amount только одного пользователя в месяц. У меня уже есть общая сумма для оплаты всех пользователей, мне просто нужна сумма для оплаты одного пользователя за все работы, которые он/она сделал/а за один месяц... Пожалуйста, помогите...

Попробуйте дать свой код, это облегчит нам понимание

Если у вас есть объект User, что вы получите т.е. с помощью этой функции:

user = User.objects.get(id=1)

Тогда вы могли бы получить все общие связанные рабочие объекты:

user.work_set.all()

Подвести итог Pay_amount:

from django.db.models import Sum
user.work_set.aggregate(Sum("Pay_amount")).get("Pay_amount__sum")

А если ограничиться одним месяцем (допустим, августом этого года):

user.work_set.filter(Date_Created__month=8, Date_Created__year=2022).aggregate(Sum("Pay_amount")).get("Pay_amount__sum")

PS называют классы с помощью CamelCase и поля/переменные с помощью snake_case. Это довольно важно.

Вернуться на верх