Django 模型 order_by 非数据库字段

lhb25 阅读:114 2025-06-02 22:19:02 评论:0

我有这个模型:

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
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号