幾個字段註釋,我有兩個型號:的Django上與相同型號
class Account(models.Model):
...
class Transaction(models.Model):
....
account = models.ForeignKey(Account)
source_account = models.ForeignKey(Account, null=True)
我需要顯示的交易數量爲每個用戶的帳戶。 Django的annotate
似乎是這項任務的適當工具。我所做的:
queryset = models.Account.objects.filter(user=self.request.user)
queryset.annotate(transactions_count=Count('transaction'))
這得到account
現場交易設定謂詞帳戶的正確數目,但遺漏了其中source_account
設置爲謂語賬戶交易。
使用Django的殼,我能夠做這樣的事情:
accounts_count = user_transactions.filter(Q(account=account)|Q(source_account=account)).count()
這給了正確的答案。有什麼我做錯了嗎?有人能指出我正確的方向嗎?任何援助是高度讚賞。
我必須在'Count'調用中添加'distinct = True'。謝謝。 – lenny