Как объединить два набора запросов в представлении Django - PullRequest
0 голосов
/ 22 марта 2020

Я новичок в Django. У меня есть две модели.

class KeyAccountManagerOrder(models.Model):
    order = models.OneToOneField(Order, on_delete=models.CASCADE, primary_key=True)
    kam = models.ForeignKey(KeyAccountManager, on_delete=models.PROTECT)
    order_date = models.DateField()
    or_amount = models.DecimalField(decimal_places=2, max_digits=12)


class KeyAccountManagerCollection(models.Model):
    collection = models.OneToOneField(Collection, on_delete=models.CASCADE, primary_key=True)
    kam = models.ForeignKey(KeyAccountManager, on_delete=models.PROTECT)
    collection_date = models.DateField()
    Cal_amount = models.DecimalField(decimal_places=2, max_digits=12)

Я хочу вернуть сумму суммы из обоих модулей. Например

TotalCollection=Sum(Cal_amount)

TotalOrder=sum(or_amount)

Я делать следующим образом (view.py): -

def get_all_target(self, request, *args, **kwargs):
    collection = models.KeyAccountManagerCollection.objects.aggregate(total_collections = Sum('Cal_amount'))
    order = models.KeyAccountManagerOrder.objects.aggregate(total_orders = Sum('or_amount'))
    queryset = chain(collection, order)

Но теперь я запутался, потому что мне нужен также сериализатор. Есть ли другой способ или как я могу определить сериализатор для того же.

...