Показать два последних упорядоченных объекта с Pony ORM - PullRequest
0 голосов
/ 25 июня 2019

Я учусь использовать Pony ORM, и с этим MWE ...

from pony import orm
db = orm.Database()
class Test(db.Entity):
    label = orm.Required(str)
db.bind(provider='sqlite',filename=':memory:')
db.generate_mapping(create_tables=True)
with orm.db_session:
    Test(label='text02')
    Test(label='text01')
    Test(label='text03')
orm.select(t for t in Test).order_by(lambda: t.label).filter(lambda: t.label > 'text01').show()

... Я могу упорядочить сущности так, как я хочу, а затем использовать их для отображения последнегодва, зная, какие будут последние два.

id|label
--+------
1 |text02
3 |text03

Есть ли лучший способ показать последние пару кортежей / строк в отношении / таблице, особенно если я не знаю, какие объекты я 'захочешь отфильтровать?Я бы предпочел заказать объекты, а затем просто показать последние два, без необходимости явно указывать фильтр.Вроде как BASH tail -n 2 может быть использован.

1 Ответ

1 голос
/ 15 июля 2019

Вы можете отсортировать по убыванию и взять первые два элемента.

orm.select(t for t in Test).order_by(lambda: desc(t.label)).limit(2)
...