在django中同时使用.annotate()和extra()
在创建查询集时,我似乎不能同时使用annotate和extra 这个 返回在django中同时使用.annotate()和extra(),django,annotate,extra,Django,Annotate,Extra,在创建查询集时,我似乎不能同时使用annotate和extra 这个 返回 Caught Warning while rendering: Truncated incorrect DOUBLE value: 'userUpVotes' 我想将UserUpVoces和UserDownVoces相加,得到一个“投票”字段,然后按此字段排序 UserUpVoces是一个相关的多用户域(UserDownVoces也是)。所以我需要先数一数 有什么想法吗?如果您将投票存储在同一个表或列中,则这类事情会简
Caught Warning while rendering: Truncated incorrect DOUBLE value: 'userUpVotes'
我想将UserUpVoces和UserDownVoces相加,得到一个“投票”字段,然后按此字段排序
UserUpVoces是一个相关的多用户域(UserDownVoces也是)。所以我需要先数一数
有什么想法吗?如果您将投票存储在同一个表或列中,则这类事情会简单得多,向上投票的值为+1,向下投票的值为-1。您仍然可以使用一个简单的过滤器轻松地计算向上或向下的投票数,使用一个简单的计数计算投票总数,并使用总和计算总分 用于在单独的表中存储投票的示例代码
CHOICES = {
1: 'UP',
-1: 'DOWN'
}
class Vote(models.Model):
user = models.ForiegnKey(User) # prevent ballot stuffing
game = models.ForiegnKey(Game)
vote = models.IntegerField(choices=CHOICES)
total_up_votes = Vote.objects.filter(game=GAME_INSTANCE).filter(vote=1).count()
total_votes = Vote.objects.filter(game=GAME_INSTANCE).count()
total_score = Vote.objects.filter(game=GAME_INSTANCE).aggregate(total=Sum('vote'))
total_score
将是一个命令:{'total':}如果您将投票存储在同一个表或列中,则这类事情会容易得多,向上投票的值为+1,向下投票的值为-1。您仍然可以使用一个简单的过滤器轻松地计算向上或向下的投票数,使用一个简单的计数计算投票总数,并使用总和计算总分
用于在单独的表中存储投票的示例代码
CHOICES = {
1: 'UP',
-1: 'DOWN'
}
class Vote(models.Model):
user = models.ForiegnKey(User) # prevent ballot stuffing
game = models.ForiegnKey(Game)
vote = models.IntegerField(choices=CHOICES)
total_up_votes = Vote.objects.filter(game=GAME_INSTANCE).filter(vote=1).count()
total_votes = Vote.objects.filter(game=GAME_INSTANCE).count()
total_score = Vote.objects.filter(game=GAME_INSTANCE).aggregate(total=Sum('vote'))
total_score
将是一个命令:{'total':}如果去掉单个倒逗号,是否有效-例如'vows':“userupvoces-userdownvoces”
?更新了我的问题,并对其进行了修改。删除倒逗号没有什么区别,但是我有一个新的错误,它是从我的新查询中引发的。这就是“(1054,“字段列表”中的未知列‘向上投票’”)如果去掉单个倒逗号是否有效-例如‘投票’:“userupvoces-userdownvoces”
?更新了我的问题,并对其进行了修改。删除倒逗号没有什么区别,但是我有一个新的错误,它是从我的新查询中引发的。这是“(1054,“字段列表”中的未知列“向上投票”)