我有模型,我习惯于排序我的对象的基础上两个字段和两个字段有相同的优先级
class Item(models.Model): rank1 = models.IntegerField() rank2 = models.IntegerField()
如何对具有相同优先级字段进行排序和排序
Item.objects.order_by(???) # rank1 + rank2
范例我需要看到这个排序后使用顺序:排名1:10排名2:8排名1:7排名2:6
zed5wv101#
你可以使用djangoextra对2列求和,然后使用结果对它们进行排序。
Item.objects.extra(select={'fieldsum':'rank1 + rank2'}, order_by=('-fieldsum',) )
也可以使用F()函数
from django.db.models import F Item.objects.annotate(fieldsum=F('rank1') + F('rank2')).order_by('-fieldsum')
1条答案
按热度按时间zed5wv101#
你可以使用djangoextra对2列求和,然后使用结果对它们进行排序。
也可以使用F()函数