G
TypeError: on_post_process_update() takes 3 positional arguments but 4 were given
Какие параметры он должен ловить?
Size: a a a
G
TypeError: on_post_process_update() takes 3 positional arguments but 4 were given
T
T
T
future: <Task finished coro=<Dispatcher._process_polling_updates() done, defined at .../venv/lib/python3.7/site-packages/aiogram/dispatcher/dispatcher.py:324> exception=TypeError("welcome() missing 1 required positional argument: 'repo'")>в мидлваре сделал
data["repo"] = Repo()
G
future: <Task finished coro=<Dispatcher._process_polling_updates() done, defined at .../venv/lib/python3.7/site-packages/aiogram/dispatcher/dispatcher.py:324> exception=TypeError("welcome() missing 1 required positional argument: 'repo'")>в мидлваре сделал
data["repo"] = Repo()
T
T
on_pre_process_update
T
G
T
class DbMiddleware(BaseMiddleware):
def __init__(self, engine):
super().__init__()
self.engine = engine
async def on_pre_process_update(self, update: types.Update, data: dict):
data["db"] = await self.engine.acquire()
data["repo"] = Repo(data["db"])
async def on_post_process_update(self, update: types.Update, result, data: dict):
del data["repo"]
db = data.get("db")
if db:
await db.close()
T
async def welcome(msg: Message, repo: Repo):
G
T
class DbMiddleware(BaseMiddleware):поменял так, ничего не изменилось
def __init__(self, engine):
super().__init__()
self.engine = engine
async def on_pre_process_update(self, update: types.Update, data: dict):
db = await self.engine.acquire()
data["repo"] = Repo(db)
async def on_post_process_update(self, update: types.Update, result, data: dict):
repo = data["repo"]
await repo.conn.close()
V
- pre_process update
- process update
- pre_process message
- filters
- process message
- handler
- post_process message
- post_process update
- pre_process update
- process update
- pre_process message
- filters
- post_process message
- post_process update
on_<point>_<event_type>
, то есть on_pre_process_message
, on_post_process_update
trigger
, он является главной точкой вызова мидлвари, по умолчанию он как раз и разруливает все события на методы класса мидлвариLoggingMiddleware
V
G
T
V
T
G