параметр call.data после повторного выбора пользователя не меняется, а как будто запоминает первые данные. не могу понять в чем ошибка и как ее могу исправить.
сам код:
@dp.message_handler(commands=['start'])
async def start(message: types.Message):
print('test')
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton('BMW', callback_data=2))#2
markup.add(types.InlineKeyboardButton('Benz', callback_data=3))#3
markup.add(types.InlineKeyboardButton('Audi', callback_data=4))#4
@dp.callback_query_handler()
async def callback(call):
await call.message.answer(f'Понял Принял! Теперь напиши пожалуйста, в каком городе будем смотреть {call.data}')
print(call.data)
@dp.message_handler(content_types=['text'])
async def city(message: types.Message):
global town
markup2 = types.ReplyKeyboardMarkup(one_time_keyboard=True)
markup2.add(types.KeyboardButton('Да!'))
markup2.add(types.KeyboardButton('Нет, хочу изменить параметры поиска'))
if message.text == 'Вена':
await message.answer(f'Итак, ты хочешь посмотреть {call.data} в городе {message.text}, верно?', reply_markup=markup2)
town = message.text
print(call.data)
elif message.text == 'Прага':
await message.answer(f'Итак, ты хочешь посмотреть {call.data} в городе {message.text}, верно?', reply_markup=markup2)
town = message.text
elif message.text == 'Мюнхен':
await message.answer(f'Итак, ты хочешь посмотреть {call.data} в городе {message.text}, верно?', reply_markup=markup2)
town = message.text
elif message.text == 'Да!':
with sqlite3.connect ('database.db') as connection:
cursor = connection.cursor()
cursor.execute("""
SELECT * FROM DataBase WHERE Category == (?) AND City == (?)
""", (call.data, town, ))
result = cursor.fetchall()
print(result)
elif message.text == 'Нет, хочу изменить параметры поиска':
await start(message)
else:
await message.answer('К сожалению, у нас нет данных из этого населенного пункта')