我在 Ubuntu 13.04 上使用 Django 1.4 和 Python 2.7。
我知道在 Django 中使用order_by()
和跨关系存在问题。distinct()
似乎大多数解决此问题的建议解决方案是使用聚合。在我的情况下,我没有看到如何做到这一点。
我有一个QuerySet
已经过预过滤的。我需要按 2 个字段对其进行排序,然后通过不同的外键获取结果。
class Contract(models.Model):
rpl = models.DecimalField(max_digits=20, decimal_places=2, default=0)
priority = models.IntegerField(default=0)
class Offer(models.Model):
contract = models.ForeignKey(Contract)
product = models.ForeignKey(Product)
我需要先按合同优先级然后按合同 rpl 获取报价列表。在这个结果中,我需要提供不同产品的报价。
qs.order_by('-contract__priority', '-contract__rpl').distinct('product')
我如何用 Django 优雅地做到这一点?