2016-06-12 74 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()')無法運行)。

任何幫助將是非常讚賞

回答

相關問題