Как сохранить альбом фото, и при случае так же отправить альбом aiogram 3

@admin_router.message(AddProduct.photo, or_f(F.photo, F.text == '.'))

async def add_image(message:types.Message, state:FSMContext, session: AsyncSession()):
    if message.text == '.':
        await state.update_data(photo=AddProduct.product_for_change.photo)
        
    else:
        await state.update_data(photo=message.photo[-1].file_id)
    data = await state.get_data()
    if AddProduct.product_for_change:
        await orm_update_product(session, AddProduct.product_for_change.id, data)
    else:
        print(data)
        await orm_add_product(session, data)
    await message.answer('Товар создан',
                        reply_markup=admin_kb.as_markup(
                            resize_keyboard = True,
                            input_field_placeholder = 'Меню Админа'))   
    await state.clear()
        
        
    AddProduct.product_for_change = None 

вот хендлер который должен принимать альбом фото и сохранять его

async def orm_add_product(session:AsyncSession , data:dict):
    obj = Product(
        name = data['name'],
        description = data['description'],
        size = data['size'],
        condition = data['condition'],
        price = data['price'],
        photo = data['photo'],
    )
    
    session.add(obj) 
    
    await session.commit()

вот соответственно функция которая сохраняет все параметры и должна сохранить альбом фото

@admin_router.message(F.text=='Показать список товaров ?')
async def show_products(message:types.Message, session:AsyncSession):
    for product in await orm_get_products(session):
        await message.answer_photo(
            product.photo,
            caption=f'<strong>{product.name}\
                </strong>\nОписание: <strong>{product.description}</strong>\nРазмер: <strong>{product.size}</strong>\nСостояние:  <strong>{product.condition}</strong>\nЦена:  <strong>{product.price}</strong>' 

ну и вот вывод самих товаров

async def orm_get_products(session:AsyncSession):
    query = select(Product)
    result = await session.execute(query)
    return result.scalars().all()

ну и вот если надо выбор товаров...

Кратко: Мне нужно что бы пользователь при отправлении товара мог отправить альбом фото, или даже видео(видео по желанию) и что бы бот принимал эти фото и сохранял их соответственно в бд, и при выводе товаров так же отправлял альбом, и описание(описание вроде нельзя добавлять ко всему альбому, хз)


Ответы (0 шт):