Django:如何使用float精度按计算字段排序?

时间:2011-03-04 15:21:42

标签: django floating-point sql-order-by precision

我有一个这样的模型:

class Program(models.Model):
votes_sum = models.IntegerField(max_length=10, default=0)
voters_counter = models.IntegerField(max_length=10, default=0)
...

我获得了10个评分最高的课程:

best_rated = Program.objects.filter(Q(creator__profile__type = 'us') & ~Q(voters_counter = 0)).extra(select={ 'total' : 'votes_sum / voters_counter' }).extra(order_by=['-total'])[:10]

但是,我需要使用浮点精度!因为一个3.75分的程序必须在程序之前有3.25分。 我试过了:

.extra(select={ 'total' : 'float(votes_sum) / float(voters_counter)' })

但这种语法是不可能的!

有任何帮助吗?请。

提前致谢!

1 个答案:

答案 0 :(得分:0)

best_rated = Program.objects.filter(Q(creator_ profile _type ='us')& ~Q(votes_counter = 0))。extra(select = {'total':'1.0 * votes_sum / votes_counter'})

相关问题