Mam obecnie dwa różne modele.Dołącz do wielu zapytań z różnych modeli podstawowych Django
class Journal(models.Model):
date = models.DateField()
from_account = models.ForeignKey(Account,related_name='transferred_from')
to_account = models.ForeignKey(Account,related_name='transferred_to')
amount = models.DecimalField(max_digits=8, decimal_places=2)
memo = models.CharField(max_length=100,null=True,blank=True)
class Ledger(models.Model):
date = models.DateField()
bank_account = models.ForeignKey(EquityAccount,related_name='paid_from')
account = models.ForeignKey(Account)
amount = models.DecimalField(max_digits=8, decimal_places=2)
name = models.ForeignKey(Party)
memo = models.CharField(max_length=100,null=True,blank=True)
tworzę raport w widoku i pojawia się następujący błąd: Łączenie klas „ValuesQuerySet” musi obejmować te same wartości w każdym przypadku.
Co próbuję zrobić, to tylko wyciągnąć pola, które są wspólne, więc mogę połączyć oba z nich, np.
def report(request):
ledger = GeneralLedger.objects.values('account').annotate(total=Sum('amount'))
journal = Journal.objects.values('from_account').annotate(total=Sum('amount'))
report = ledger & journal
...
Jeśli próbuję zrobić je dokładnie takie same, aby przetestować np.
def report(request):
ledger = GeneralLedger.objects.values('memo').annotate(total=Sum('amount'))
journal = Journal.objects.values('memo').annotate(total=Sum('amount'))
report = ledger & journal
...
otrzymuję ten błąd: Nie można połączyć kwerendy na dwóch różnych modelach bazowych.
Ktoś wie, jak można to osiągnąć?