Django 通过自定义方法排序



我的自定义方法实际上是一种计算,我试图避免通过管理器订购,如果可能的话,只使用order_by。有没有办法或一行语法来实现这一点?这是我的模型:

class Bet(models.Model):

    provider = models.ForeignKey(Provider)
    member = models.ForeignKey(Member)
    game = models.ForeignKey(Game)
    status = models.ForeignKey(Status)
    bet_id = models.CharField(max_length=200)
    bet_time = models.DateTimeField()
    bet_amount = models.FloatField()
    valid_bet_amount = models.FloatField()
    settlement_amount = models.FloatField()
    def get_profit(self):
        return self.settlement_amount - self.valid_bet_amount

您要注释

profit = F('settlement_ammount') - F('valid_bet_amount')
my_query.annotate(profit=profit).order_by('profit')

请参阅将 F() 与批注一起使用

最新更新