0

我有一个代表用户投注的模型类。我想计算整个数据库(不是单个用户)的每日奖金。使用公式计算每个用户投注的奖金odds * coins(当结果 = 1 时)。

class UserBet(models.Model):
    user = models.ForeignKey(User)
    bet = models.ForeignKey(Bet)
    coins = models.FloatField(default=0.0) 
    placed = models.DateTimeField(editable=False) #when user places the bet
    result = models.SmallIntegerField(default=0) # 1: win, 0: no result yet, -1: lose
    odds = models.FloatField(default=0.0)
    week_number = models.SmallIntegerField(default=0)
    year = models.SmallIntegerField(default=0)
    modified = models.DateTimeField() #when result is updated

我每天都会获得这样的成功结果(MySql):

UserBet.objects.filter(result=1).extra({'date_modified':"date(modified)"}).values('date_modified').annotate(coins_sum=Sum('coins'))

但这不是我想要的。每个用户放置的硬币应乘以每个用户下注的赔率,以获得每日奖金。

这可能吗?

4

1 回答 1

1

您可以使用以下QuerySet.extra方法:

UserBet.objects.filter(result = 1).extra({'winnings':'odds * coins'})...
于 2012-05-24T09:21:36.630 回答