FSMContext не работает MemoryStorage
Для хранения состояния класса State нужно выделить место, я делаю это через:
from aiogram.contrib.fsm_storage.memory import MemoryStorage
storage = MemoryStorage()
dp = Dispatcher(bot, storage)
class Form(StatesGroup):
mes1 = State()
mes2 = State()
Вроде всё должно работать при попытке поместить в состояние текст, но выдает ошибку:
D:\POSLEDNIYBOT\lib\site-packages\aiogram\dispatcher\filters\state.py:57: FSMStorageWarning: You haven’t set any storage yet so no states and no data will be saved.
You can connect MemoryStorage for debug purposes or non-essential data.
await state.set_state(self.state)
ВОТ ПОЛНЫЙ КОД:
import logging
from aiogram.dispatcher.filters import state
import config
import importlib
import datetime
import pymysql
from aiogram import Bot, Dispatcher, executor, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
import sys
importlib.reload(sys)
# log level
logging.basicConfig(level=logging.INFO)
# DB CONNECT
try:
db = pymysql.connect(
host="",
port=,
user="r",
password="",
database="",
)
print("Successfull")
except Exception as ex:
print("HUINYA")
bot = Bot(token=config.API_TOKEN)
storage = MemoryStorage()
dp = Dispatcher(bot, storage)
class Form(StatesGroup):
mes1 = State()
mes2 = State()
# Поиск id
@dp.message_handler(commands=['id'])
async def welcam(message: types.Message )->None:
await message.answer( "Введи название улицы")
await Form.mes1.set()
@dp.message_handler(state= Form.mes1)
async def adresHandler(message: types.Message, state: FSMContext )->None:
async with state.proxy() as data:
data['mes1'] = message.text
await message.reply("Теперь введи дом")
await state.finish()
# run long-polling
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
От бота хочу чтобы юзер мог ввести адрес и дом,в коде раскинуть эти значения в переменные, и потом искать этот адрес в базе данных с адресами очередей отключения света Заранее, спасибо за помошь, вы лучшее камьюнити))
Источник: Stack Overflow на русском