selectinload

This commit is contained in:
Untone 2024-08-07 12:57:01 +03:00
parent d369cfe333
commit 41482bfd4b
2 changed files with 6 additions and 1 deletions

View File

@ -39,6 +39,7 @@ jobs:
uses: dokku/github-action@master uses: dokku/github-action@master
with: with:
branch: 'dev' branch: 'dev'
force: true
git_remote_url: 'ssh://dokku@staging.discours.io:22/core' git_remote_url: 'ssh://dokku@staging.discours.io:22/core'
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }} ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}

View File

@ -1,5 +1,6 @@
from sqlalchemy.orm import aliased from sqlalchemy.orm import aliased
from sqlalchemy.sql.expression import ( from sqlalchemy.sql.expression import (
selectinload,
and_, and_,
asc, asc,
case, case,
@ -94,7 +95,10 @@ def get_shouts_with_stats(q, limit, offset=0, author_id=None):
:return: Список публикаций с включенной статистикой. :return: Список публикаций с включенной статистикой.
""" """
# Основной запрос для получения публикаций и объединения их с подзапросами # Основной запрос для получения публикаций и объединения их с подзапросами
q = q.limit(limit).offset(offset) q = q.options(
selectinload(Shout.authors), # Eagerly load authors
selectinload(Shout.topics) # Eagerly load topics
).limit(limit).offset(offset)
# Выполнение запроса и обработка результатов # Выполнение запроса и обработка результатов
with local_session() as session: with local_session() as session: