Пишу бота на python с библиотекой aiogram 3.14
почему то после запроса фото не переходит в обработчик пересылки фото.
хотя в состояние waiting_for_photo переходит.
В чем может быть проблема?
@router.message(TaskStates.waiting_for_photo)
async def get_photo(message: Message, state: FSMContext):
print("Обработчик получен для состояния ожидания фото")
data = await state.get_data()
task_id = data.get("task_id")
if not task_id:
await message.answer("Не удалось определить задачу. Попробуйте снова.")
return
# Логика обработки фото
photos = message.photo
if not photos:
await message.answer("Пожалуйста, отправьте фото.")
return
print(f"Количество фото: {len(photos)}")
admins = await sync_to_async(list)(CustomUser.objects.filter(status='admin'))
for photo in photos:
file_id = photo.file_id
for admin in admins:
await bot.send_photo(admin.telegram_id, file_id)
await state.finish()
await message.answer("Фото успешно отправлено администраторам.")
@dp.callback_query(lambda callback_query: callback_query.data.startswith("execute_task:"))
async def handle_execute_task(callback_query: CallbackQuery, state: FSMContext):
task_id = int(callback_query.data.split(":")[1])
try:
task = await sync_to_async(Task.objects.get)(id=task_id)
if task.status == 'resolved':
await callback_query.answer("Эта задача уже отмечена как выполненная.", show_alert=True)
return
if task.requires_photo_confirmation:
# Печать перед установкой состояния
print(f"Текущее состояние: {await state.get_state()}")
await state.update_data(task_id=task_id)
await state.set_state(TaskStates.waiting_for_photo)
await bot.send_message(callback_query.from_user.id, "Пожалуйста, отправьте фото отчет для выполнения задачи.")
# Печать после установки состояния
print(f"Текущее состояние после установки: {await state.get_state()}")
return
await callback_query.answer(f"Задача '{task.title}' передана администратору на проверку.", show_alert=True)
await notify_admins_about_task(task)
except Task.DoesNotExist:
await callback_query.answer("Задача не найдена.", show_alert=True)