У меня есть 2 модели: (Счет-фактура и сводка)
class Invoice(models.Model):
inv_id = models.IntegerField()
order_id = models.IntegerField()
unit_price = models.IntegerField()
num_units = models.IntegerField()
def __str__(self):
return str(self.inv_id)
class Summary(models.Model):
invo_id = models.ForeignKey(Invoice, on_delete=models.CASCADE)
sum = models.IntegerField()
Мне нужно вставить данные в итоговую таблицу из URL-адреса, а также вычислить «сумму» с помощью таблицы счетов-фактур. Я пытался:
inv_id = request.GET.get('inv_id').split(',')
for i in inv_id:
# summary = Invoice.objects.filter(id=i).annotate(result=F('unit_price') * F('num_units')).aggregate(Sum('result'))['result__sum']
summary = Invoice.objects.raw('''select id as id,sum(unit_price * num_units) as sum from restapi_invoice where inv_id = {}'''.format(i))
x = Invoice.objects.get(pk=summary[0])
# Summary.objects.update_or_create(invo_id_id=x, defaults={"sum": summary[1]})
p = Summary(sum=summary[1])
p.save()
p.invo_id.add(x)
это не работает. Как я могу вставить идентификатор из URL, а также вычислить сумму этого идентификатора и сохранить в сводной таблице?