Загрузка...

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

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

  1. IFearNobody
    IFearNobody Автор темы 11 май 2025 179 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. IFearNobody Автор темы
    3. defeatingopps
      IFearNobody, у тебя норм версия, не в этом дело

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

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

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