从 PeeWee ORM 中的父对象引用时如何排序子记录

How to order child records when referenced from a parent object in PeeWee ORM

如何在 Peewee 中指定通过外键返回的记录的顺序?

我有以下(简化)模型;

class Order(peewee.Model):
    order_no = peewee.CharField()

class OrderLine(peewee.Model):
    order_item = peewee.CharField()
    quantity = peewee.IntegerField()
    price = peewee.DecimalField()

    order = peewee.ForeignKeyField(Order)

当我使用 my_order = Order.get(1234) 获取订单时,我想按特定顺序遍历订单行,有时按 order_item 顺序,有时按 quantity 顺序。有没有办法做到这一点?目前他们似乎从数据库中按 order_item.id 顺序返回。

外键的反向引用 (Order.orderline_set) 只是 select 查询的包装器,因此您可以按照自己的意愿对其进行排序:

for item in order.orderline_set.order_by(OrderLine.quantity):
    ...