Задать вопрос
@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)
  • Вопрос задан
  • 2245 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия: Python-разработчик
    8 месяцев
    Далее
Решения вопроса 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()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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