У меня есть класс модели, который представляет ставку пользователя. Я хотел бы рассчитать ежедневные выигрыши для всей базы данных (не одного пользователя). Выигрыши для каждой ставки пользователя рассчитываются по формуле odds * coins
(когда результат = 1).расчет ежедневных выигрышей с django
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'))
однако это не то, что я хочу. Монеты, размещаемые каждым пользователем, должны умножаться на каждый коэффициент ставки пользователя, чтобы получить ежедневный выигрыш.
Возможно ли это вообще?
Спасибо, я попробовал, и я не получаю ежедневно агрегированные результаты, больше. Это не большая проблема. Я могу сделать некоторую пост-обработку и достичь результата, который я хочу. Я вставляю часть того, что у меня есть: '[{'winnings': 62.5, 'coins_sum': 25.0, 'date_modified': datetime.date (2012, 4, 27)}, {'winnings': 162.0, 'coins_sum ': 54.0,' date_modified ': datetime.date (2012, 4, 28)}, {' winnings ': 25.5,' coins_sum ': 15.0,' date_modified ': datetime.date (2012, 4, 27)} ,. ..' – xpanta