几个字段注释,我有两个型号:的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