@AlexaAioGram

Как сделать кнопку Назад на Aiogram в телеграме?

Я не могу сделать что бы при нажатии на кнопку " Назад " клавиатура смещалась на один уровень назад, поэтому знающих прошу помочь,

handler.py

from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters import Command
from aiogram.types import Message

from handlers.users.keyboard import Choice, Katalog
from loader import dp


@dp.message_handler(Command('Start'))
async def catalog(message: Message):
    await message.answer('Вот наш каталог', reply_markup=Choice)

@dp.message_handler()
async def games(message: Message):
    if 'Старт' in message.text:
        await message.answer('Вот выберай', reply_markup=Katalog)

@dp.message_handler()
async def back(message: Message, state: FSMContext):
    text = message.text
    if 'Назад' in message.text:
        await message.answer('Ты вернулся', reply_markup=Choice)
        await Choice.Update.set()


Keyboard.py

from aiogram.types import ReplyKeyboardMarkup, KeyboardButton

Choice = ReplyKeyboardMarkup(resize_keyboard=True)
Start = KeyboardButton(text='Старт')
Choice.insert(Start)

Katalog = ReplyKeyboardMarkup(resize_keyboard=True)
game = KeyboardButton(text='Игры')
Katalog.insert(game)
back = KeyboardButton(text='Назад')
Katalog.insert(back)
  • Вопрос задан
  • 1585 просмотров
Решения вопроса 1
@twistfire92
Python backend developer
Скорее всего дело в том, что у вас 2 одинаковых хендлера @dp.message_handler()
проверяется только первый, а поиск вхождения фразы "Назад" происходит во втором. Поместите все под один хендлер.

@dp.message_handler()
async def games(message: Message):
    if 'Старт' in message.text:
        await message.answer('Вот выберай', reply_markup=Katalog)
    elif 'Назад' in message.text:
        await message.answer('Ты вернулся', reply_markup=Choice)
        await Choice.Update.set()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы