2013-10-08 56 views
0

使用外鍵表的專欄中,我有一個類交易:集團通過在Django

class Transaction(models.Model): 
Driver = models.ForeignKey(User,related_name='Driver') 
Passenger = models.ForeignKey(User,related_name='Passenger') 
DriverRoute = models.ForeignKey(ServiceProviderRouteDetails) 
PassengerRoute = models.ForeignKey(PassengerRouteDetails) 
Status = models.CharField(max_length=20) 

然後,我有一個類TransactionHistory:

class TransactionHistory(models.Model): 
Transaction = models.ForeignKey(Transcation) 
User = models.ForeignKey(User) 
Debit = models.FloatField(null='true') 
Credit = models.FloatField(null='true') 
Status = models.CharField(max_length=25) 
DateOfPayment = models.DateTimeField(default=now) 

交易記錄有交易列作爲外鍵指向事務表。 我的問題是,我想計算登錄用戶的每個驅動程序路徑的借方總和。事務表可以有一個以上的DriverRoute行。

我想要做這樣的事情:

TranscationHistory.objects.values('Transcation.DriverRoute.id').filter(User_id=request.user.id,Status='Completed').annotate(sum_score=Sum('Credit')) 

但它不工作...任何的猜測?

回答

0

使用__來跟蹤django查詢中的關係。這將爲你工作...

TranscationHistory.objects.values('transaction__driverroute__id') 
    .filter(User__id=request.user.id,Status='Completed') 
    .annotate(sum_score=Sum('Credit'))