2013-10-08 60 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'))