简体   繁体   English

如何使用属性字段Django对QuerySet进行排序

[英]How to sort QuerySet with property field Django

I have a model as 我有一个模特

class FooModel(models.Model):
    field_1 = models.IntegerField()
    field_2 = models.IntegerField()

    @property
    def field_sum(self):
        return self.field_1 + self.field_2

How can I sort the queryset with field_sum field? 如何使用field_sum字段对查询集进行排序?

FooModel.objects.all().order_by('field_sum') is giving me error. FooModel.objects.all().order_by('field_sum')给我错误。 Thanks in advance 提前致谢

Use F() expression along with annotate() as below, 使用F()表达式和annotate()如下所示,

from django.db.models.expressions import F

FooModel.objects.annotate(field_sum_new=F('field_1') + F('field_2')).order_by('field_sum_new')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM