我有这个模型:

class Foo(models.Model):
    foo_id = models.IntegerField()
    foo_old_prize = models.FloatField()
    foo_new_prize = models.FloatField()

def get_dif(self):
    return self.foo_old_prize  - self.foo_new_prize

有什么技巧可以做到这一点 Foo.objects.all().order_by('get_dif') 吗?

谢谢

最佳答案

查看 extra Django 查询集运算符:

q = Foo.objects.extra(select={'dif': 'foo_old_prize - foo_new_prize'})
q = q.extra(order_by = ['dif'])

关于Django 模型 order_by 非数据库字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13122826/

10-16 06:23