как найти общую сумму в месяц - PullRequest
0 голосов
/ 07 февраля 2020

так что у меня есть эта модель две модели

class Pv(models.Model):
   IA_System_Code = models.AutoField(primary_key = True)
   IA_code = models.CharField(max_length = 150)
   Date_recieved = models.DateField()
   Pv_reference = models.CharField(unique = True, max_length = 120)
   Payee = models.CharField(max_length=500)
   Description = models.CharField(max_length = 500)

   class Meta():
        ordering = ["-IA_System_Code"]

  def __str__(self):
     return self.Pv_reference +" " + self.Description


class staff(models.Model):
  staff_id = models.CharField(max_length = 150)
  name = models.CharField(max_length = 300)
  rank = models.CharField(max_length = 300)
  amount = models.DecimalField(max_digits=19, decimal_places=2)
  Pv_reference = models.ForeignKey('Pv',on_delete=models.CASCADE)
  date_created = models.DateField()
  def __str__(self):
    return  self.name

Так что модель PV имеет отношение один-ко-многим с персоналом. Это означает, что многие сотрудники могут извлечь выгоду из одного PV. И у нас может быть персонал, который получает выгоду от разных фотошопов. Таким образом, модель персонала может иметь одного сотрудника, повторяющегося, как 10 раз в месяц, потому что, пользуясь разными значениями pv.

Теперь мой вопрос состоит в том, как получить месячную общую сумму каждого сотрудника, который был введен в модель персонала?

1 Ответ

0 голосов
/ 07 февраля 2020

Я не уверен, что это правильно. Но так мы это делаем.

staff.objects.filter(Pv_reference__Date_recieved__gte=FROMDATE, Pv_reference__Date_recieved__lte=TODATE).values('staff_id').aggregate(Sum('amount'))
...