首页 > 解决方案 > 通过计算外键 Django 上的字段总和来排序对象

问题描述

假设我有一些这样定义的模型:

Class Owner(models.Model):
    pass

Class Item(models.Model):
    value = models.IntegerField()
    owners = models.ForeignKey(Owner, related_name="items")

我将如何根据项目价值的总和对所有者进行排序,理想情况下,我可以将其作为一个 QuerySet 传递给一个模板,例如Owner.objects.order_by('-valueofItems')

标签: djangopython-3.x

解决方案


将 ORM聚合order_by一起使用

from django.db.models import Sum

Owner.objects.annotate(total_value=Sum('item_value')).order_by('-total_value')

推荐阅读