Как сохранить альбом фото, и при случае так же отправить альбом 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()
ну и вот если надо выбор товаров...
Кратко: Мне нужно что бы пользователь при отправлении товара мог отправить альбом фото, или даже видео(видео по желанию) и что бы бот принимал эти фото и сохранял их соответственно в бд, и при выводе товаров так же отправлял альбом, и описание(описание вроде нельзя добавлять ко всему альбому, хз)