我有一个这样的模型:
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)' })
但这种语法是不可能的!
有任何帮助吗?请。
提前致谢!
答案 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'})