Skip to content

Commit 50ffd30

Browse files
authored
Merge pull request #93 from uriyyo/bugfix/sqlalchemy
Add ability to serialize not only models
2 parents 1ccd6d6 + a171ff0 commit 50ffd30

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

fastapi_pagination/ext/sqlalchemy.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from __future__ import annotations
22

3-
from typing import Optional, TypeVar
3+
from typing import Any, Optional, TypeVar
44

55
from sqlalchemy.orm import Query
66
from sqlalchemy.sql import Select
@@ -16,11 +16,18 @@ def paginate_query(query: T, params: AbstractParams) -> T:
1616
return query.limit(raw_params.limit).offset(raw_params.offset)
1717

1818

19+
def _to_dict(obj: Any) -> Any:
20+
try:
21+
return obj._asdict()
22+
except AttributeError:
23+
return obj
24+
25+
1926
def paginate(query: Query, params: Optional[AbstractParams] = None) -> AbstractPage:
2027
params = resolve_params(params)
2128

2229
total = query.count()
23-
items = paginate_query(query, params).all()
30+
items = [_to_dict(item) for item in paginate_query(query, params)]
2431

2532
return create_page(items, total, params)
2633

0 commit comments

Comments
 (0)