Загрузка...

Aiogram3 - handler for all hundreds

Thread in Python created by IFearNobody May 11, 2025. 171 view

  1. IFearNobody
    IFearNobody Topic starter May 11, 2025 179 Dec 14, 2022
    На aiogram2 делал так:
    Code
    @dp.message_handler(text=[' Админ панель'], state='*')
    На aiogram3 не понимаю как это можно сделать
    Code
    @router.callback_query(F.data == 'back_to_profile', StateFilter('*'))
    пытался так, но ничего не получись
     
  2. противоположник
    шобы сделать хендлер, реагирующий на любое состояние ты не юзаешь statefilter('*'), как в aiogran 2. вместо этого юзай фильтр statefilter() без аргументов
     
    1. IFearNobody Topic starter
      противоположник,
      Code
      ┌──(.venv)─(reques6e㉿kali)-[~/*********/GitHub/***seller]
      └─$ /home/reques6e/*********/GitHub/***seller/.venv/bin/python /home/reques6e/*********/GitHub/***seller/src/main.py
      Traceback (most recent call last):
      File "/home/reques6e/*********/GitHub/***seller/src/main.py", line 5, in <module>
      from bot.handlers.client import router as router_client
      File "/home/reques6e/*********/GitHub/***seller/src/bot/handlers/client.py", line 60, in <module>
      @router.callback_query(F.data == 'back_to_profile', StateFilter())
      ~~~~~~~~~~~^^
      File "/home/reques6e/*********/GitHub/***seller/.venv/lib/python3.13/site-packages/aiogram/filters/state.py", line 20, in __init__
      raise ValueError("At least one state is required")
      ValueError: At least one state is required
      ошибку даёт
    2. противоположник
      IFearNobody, пушо установлена альфа или бета версия aiogram 3.x, где statefilter() без аргументов ещё не поддерживается
    3. View the next comments (6)
  3. defeatingopps
    defeatingopps May 11, 2025 как дела 306 Nov 2, 2023
    просто подсоединяй хандлер самым первым, и он будет вне зависимости от стейта срабатывать
     
    1. IFearNobody Topic starter
    2. defeatingopps
      IFearNobody, не указывай вообще стейт фильтр

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

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