21 lines
1.1 KiB
Python
21 lines
1.1 KiB
Python
from sqlalchemy import cast, Integer
|
||
from sqlalchemy.future import select
|
||
from utils.db import AsyncSessionLocal
|
||
from utils.db.regions import Region
|
||
|
||
async def get_sorted_regions():
|
||
"""
|
||
Получает отсортированный список активных регионов из базы данных.
|
||
|
||
:return: Список кортежей с идентификаторами и названиями регионов
|
||
"""
|
||
async with AsyncSessionLocal() as session:
|
||
async with session.begin():
|
||
# Формируем запрос для получения активных регионов
|
||
stmt = select(Region.region_id, Region.region_name).where(Region.active == True).order_by(cast(Region.region_id, Integer))
|
||
|
||
# Выполняем запрос и получаем результат
|
||
result = await session.execute(stmt)
|
||
regions = result.fetchall() # Получаем все записи как список кортежей
|
||
regions = "\n".join(f"{region_id}: {region_name}" for region_id, region_name in regions)
|
||
return regions |