我有以下模式:
class ApiUser(models.Model):
apikey = models.CharField(max_length=32, unique=True)
class ExtMethodCall(models.Model):
apiuser = models.ForeignKey(ApiUser)
method = models.CharField(max_length=100) #method name
units = models.PositiveIntegerField() #how many units method call cost
created_dt = models.DateField(auto_now_add=True)
就报告而言,需要让今天发出任何呼吁的所有用户都参与进来,并需要为每个用户提供全部电话。
在座右铭上:
SELECT apiuser.*, q1.total_cost
FROM apiuser INNER JOIN (
SELECT apiuser_id, sum(units) as total_cost
FROM extmethodcall
WHERE create_dt = curdate()
GROUP by apiuser_id
) USING apiuser_id
迄今为止,我找到了以下解决办法:
models.ExtMethodCall.objects.filter(created_dt=datetime.date.today()).values( apiuser ).annotate(Sum( units ))
页: 1
是否有更明智的解决办法?