2012-07-19 120 views
1

我正在尝试做一些非常简单而平凡的事情,但没有运气。django中的Django-rating过滤

我正在使用django评级来评价我网站上的特定对象。 在我的模型,我想我打分有一个字段:

rating = RatingField(range=5) 

现在,我要的是过滤所有具有的2的速率,对象和aobve例如。

如果收视率为IntegerField例如,我只需要做的:

objects.filter(rating__gte = 2) 

我该怎么办的使用Django评级一样吗?

回答

1

阅读django-rate documentation我发现这招用率排序:

# In this example, ``rating`` is the attribute name for your ``RatingField`` 
qs = qs.extra(select={ 
    'rating': '((100/%s*rating_score/(rating_votes+%s))+100)/2' 
       % (MyModel.rating.range, MyModel.rating.weight) 
         }) 
qs = qs.order_by('-rating') 

也许你可以修改这个代码示例和使用extra where才能给你结果:

qs = qs.extra(where=[ 
     '((100/%s*rating_score/(rating_votes+%s))+100)/2 >= 2 ' % 
      (MyModel.rating.range, MyModel.rating.weight) , 
        ])