2016-06-12 49 views
0

我有这样的模式:排序查询集基于较高的两个不同的领域

class ScoringModel(model.Model): 
    red_score = models.SmallIntegerField() 
    blue_score = models.SmallIntegerField() 

我想基于哪个查询集进行排序两者之间更大。现在,拿他们的总和是行不通的,因为这意味着90比0的分数比50比50的分数低,这不是我想要的。 (我试图找到高分名单,基本上是这样。)

我尝试添加该模型的内部功能,因为这样:

class ScoringModel(model.Model): 
    red_score = models.SmallIntegerField() 
    blue_score = models.SmallIntegerField() 

    def max_score(self): 
     return self.red_score if self.red_score > self.blue_score else self.blue_score 

不工作,因为order_by功能不支持函数返回值(即ScoringModel.objects.order_by('-max_score')ScoringModel.objects.order_by('-max_score()')无法运行)。

任何帮助将是非常赞赏

回答