get one with load

This commit is contained in:
IluaAir
2025-08-15 15:47:58 +03:00
parent 9e5cde8e28
commit a9997b1207
5 changed files with 27 additions and 9 deletions

View File

@@ -1,6 +1,8 @@
from sqlalchemy import update
from sqlalchemy import select, update
from sqlalchemy.orm import selectinload
from src.models import UsersORM
from src.models.tasks import TasksORM
from src.repository.base import BaseRepo
@@ -17,3 +19,17 @@ class UsersRepo(BaseRepo):
result = await self.session.execute(stmt)
model = result.scalar_one()
return model
async def get_one_with_load(self, user_id: int) -> UsersORM | None:
quary = (
select(self.model)
.where(self.model.id == user_id)
.options(
selectinload(self.model.tasks).load_only(
TasksORM.id, TasksORM.title, TasksORM.due_date
)
)
)
result = await self.session.execute(quary)
obj = result.scalar_one_or_none()
return obj