den folgenden Code Gegeben:Warum Annotate doppelte Einträge erzeugt?
payments = Payment.objects.filter(
customer=self.customer,
created_at__gte=kwargs['start_date'],
created_at__lte=kwargs['end_date']
).order_by('-date')
balance = payments.values('currency').annotate(Sum('amount'))
> print(balance)
> [{'amount__sum': Decimal('0.00'), 'currency': 'USD'},
{'amount__sum': Decimal('0.00'), 'currency': 'USD'},
{'amount__sum': Decimal('9000.00'), 'currency': 'SEK'},
{'amount__sum': Decimal('45000.00'), 'currency': 'EUR'},
{'amount__sum': Decimal('11385.00'), 'currency': 'SEK'}]
Liste der Zahlungen für diese Kunden:
> print(payments)
> ('-1487.50', 'USD')
('1487.50', 'USD')
('-3663.72', 'USD')
('3663.72', 'USD')
('15000.00', 'EUR')
('9000.00', 'SEK')
('30000.00', 'EUR')
('9865.00', 'SEK')
('1520.00', 'SEK')
Wenn ich Aggregat verwenden, erhalte ich die Summe, sondern für alle Währungen und das ist nicht das, was ich will. Ich muss in der Lage sein, in Währungen zu spalten.
{'amount__sum': Decimal('65385.00')}
Ich versuche, die Zahlungen von Kunden Gruppierung und Summieren von Währungen zu extrahieren. Es passiert jedoch, dass einige der Werte nicht addiert werden, sondern dupliziert werden. Irgendwelche Ideen?
Welche der Zahlungen des Benutzers sind in dem angegebenen Zeitraum? – schwobaseggl
Ich habe die Liste der Zahlungen gedruckt, die in der Frage zusammengefasst werden sollten. Es sollte alle Zahlungen aus allen Währungen in diesem Datumsbereich enthalten. –