diff --git a/crudkit/dsl.py b/crudkit/dsl.py index a9ee931..5a4e5b8 100644 --- a/crudkit/dsl.py +++ b/crudkit/dsl.py @@ -108,6 +108,11 @@ def build_query(Model, spec: QuerySpec, eager_policy=None): col = getattr(Model, key[1:] if desc_ else key) stmt = stmt.order_by(desc(col) if desc_ else asc(col)) + if not spec.order_by and spec.page and spec.per_page: + pk_cols = inspect(Model).primary_key + if pk_cols: + stmt = stmt.order_by(*(asc(c) for c in pk_cols)) + # eager loading if eager_policy: opts = eager_policy(Model, spec.expand) diff --git a/crudkit/html/templates/crudkit/_macros.html b/crudkit/html/templates/crudkit/_macros.html index f713e81..1bcdfd4 100644 --- a/crudkit/html/templates/crudkit/_macros.html +++ b/crudkit/html/templates/crudkit/_macros.html @@ -31,17 +31,15 @@ {%- endfor -%} {%- endmacro %} -{% macro pager(model, page, pages, per_page, sort, filters) -%} -