Задать вопрос
@denisland

Почему не срабатывает @dp.callback_query_handler?

почему не срабатывает декоратор @dp.callback_quer_handler. До применения FSM все работало. Никакой ошибки не выдает при этом.
import aiogram
import sqlite3
import schedule
import time
import parser
from aiogram import Bot, Dispatcher, executor, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher.filters.state import StatesGroup, State
from aiogram.dispatcher import FSMContext

storage = MemoryStorage()
bot = Bot('токен')
dp = Dispatcher(bot, storage=storage)

class UserState(StatesGroup):
    name = State()
    call = State()
    town = State()


@dp.message_handler(commands=['start'])
async def user_register(message: types.Message):
    await message.answer("Привет! Для успешного поиска недвижмости необходимо создать анкету пользователя. Введите пожалуйста своё имя")
    await UserState.name.set()


@dp.message_handler(state=UserState.name)
async def get_username(message: types.Message, state: FSMContext):
	await state.update_data(username=message.text)
	markup = types.InlineKeyboardMarkup()
	markup.add(types.InlineKeyboardButton('Квартиры', callback_data=2))#2
	markup.add(types.InlineKeyboardButton('Комнаты', callback_data=3))#3
	markup.add(types.InlineKeyboardButton('Дома, дачи, коттеджи', callback_data=4))#4
	markup.add(types.InlineKeyboardButton('Земельные участки', callback_data=5))#5
	markup.add(types.InlineKeyboardButton('Коммерческая недвижимость', callback_data=6))#6
	markup.add(types.InlineKeyboardButton('Гаражи и машиноместа', callback_data=7))#7
	#markup.add(types.InlineKeyboardButton('Недвижимость за границей', callback_data='недвижимость за границей'))#8
	await message.answer('Отлично! Давай определимся с типом помещения, которое ты ищешь', reply_markup=markup)
	await UserState.next() # либо же UserState.address.set()

@dp.callback_query_handler()
async def callback(call):
	await call.message.answer(f'Понял Принял! Теперь напиши пожалуйста, в каком городе будем смотреть {call.data}')
	print(call.data)





executor.start_polling(dp)
  • Вопрос задан
  • 435 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
RimMirK
@RimMirK
Вроде человек. Вроде учусь. Вроде пайтону
потому-что колбек хендлер должен принимать фильтр, в твоем случае можно сделать так@dp.callback_query_handler(func=lambda call: True)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы