Как упорядочить дочерние записи при обращении к родительскому объекту в PeeWee ORM - PullRequest
0 голосов
/ 08 апреля 2020

Как указать порядок для записей, возвращаемых через 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) Я бы хотел затем перебрать строки заказа в определенном порядке c, иногда в порядке order_item, иногда в порядке quantity. Есть ли способ сделать это? В настоящий момент они, похоже, возвращаются в порядке order_item.id из базы данных.

1 Ответ

0 голосов
/ 09 апреля 2020

Бэк-ref внешнего ключа (Order.orderline_set) - это просто оболочка для запроса выбора, поэтому вы можете заказать его так, как вы: sh:

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