Форум сайта python.su
Прошу помощи.
Допустим есть:
tbl = Table('Table', metadata,
Column('id', Numeric, primary_key=True),
Column('name', String(4000)))
class Obj(object):
pass
orm.mapper(Obj, tbl)
q = Session.query(Obj)
Как можно реализовать фильтрацию записей допустим с 11 по 20.
(Нужно для реализации пагинатора)
Знаю, что в oracle есть служебное слово “rownum”, но очень не хочется писать нативный SQL в выборках и привязыватся к конкретной СУБД.
Пока решением вижу только перебор rows в цикле.
Офлайн
Сфмый простой вариант q = Session.query(Obj) или его аналог q = Session.query(Obj).slice(11, 20)
Более подробно - http://www.sqlalchemy.org/docs/reference/orm/query.html#sqlalchemy.orm.query.Query.slice
Офлайн
ziroСпасибо, то что надо!
Сфмый простой вариант q = Session.query(Obj) или его аналог q = Session.query(Obj).slice(11, 20)
Более подробно - http://www.sqlalchemy.org/docs/reference/orm/query.html#sqlalchemy.orm.query.Query.slice
Офлайн
Для паджинации логичнее выглядят .offset(11) и .limit(10).
..bw
Отредактировано (Июнь 17, 2010 16:09:08)
Офлайн
bwпро offset не знал.
Для паджинации логичнее выглядят .offset(11) и .limit(10).
..bw
Офлайн
torin2kОй! Вей! У алхимии отличная документация, вы плохой еще не видели ;)
ЗЫ: sqlalchemy хорошая штука, но документация ужасная.
Офлайн