Загрузка...

Aiogram3 - Хендлер под все стейты

Тема в разделе Python создана пользователем IFearNobody 11 май 2025. 126 просмотров

Загрузка...
  1. IFearNobody
    IFearNobody Автор темы 11 май 2025 183 14 дек 2022
    На aiogram2 делал так:
    Код
    @dp.message_handler(text=[' Админ панель'], state='*')
    На aiogram3 не понимаю как это можно сделать
    Код
    @router.callback_query(F.data == 'back_to_profile', StateFilter('*'))
    пытался так, но ничего не получись
     
  2. противоположник
    шобы сделать хендлер, реагирующий на любое состояние ты не юзаешь statefilter('*'), как в aiogran 2. вместо этого юзай фильтр statefilter() без аргументов
     
    1. Посмотреть предыдущие комментарии (5)
    2. defeatingopps
      IFearNobody, у тебя норм версия, не в этом дело

      StateFilter() не может быть пустым, он требует хотя бы один аргумент
      (это в ошибке написано если что)
  3. defeatingopps
    defeatingopps 11 май 2025 улыбнись братан это новый день 302 2 ноя 2023
    просто подсоединяй хандлер самым первым, и он будет вне зависимости от стейта срабатывать
     
    1. defeatingopps
      IFearNobody, не указывай вообще стейт фильтр

      он нужен чтобы отфильтровать по конкретным состояниям
  4. defeatingopps
    defeatingopps 11 май 2025 улыбнись братан это новый день 302 2 ноя 2023
    router.callback_query(F.data == 'back_to_profile')
    просто пиши вот так

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