class Users(BaseModel):
id = IntegerField(primary_key=True)
user_id = IntegerField()
username = CharField(null=True)
first_name = CharField()
status = IntegerField(default=0)
wallet = CharField(default='Не указан')
pay_tag = CharField(null=True)
balance = IntegerField(default=0)
mentor = DeferredForeignKey('Mentors', field='user_id', null=True)
date = DateTimeField(default=datetime.datetime.now())
class Mentors(BaseModel):
id = IntegerField(primary_key=True)
user = ForeignKeyField(Users, field='user_id', backref='mentors', null=True)
percent_mentor = IntegerField()
description = CharField(null=True)
# Функция для генерации клавиатур с инлайн-кнопками
def get_markup(width: int, *args, **kwargs) -> InlineKeyboardMarkup:
# Инициализируем билдер
kb_builder: InlineKeyboardBuilder = InlineKeyboardBuilder()
# Инициализируем список для кнопок
buttons: list[InlineKeyboardButton] = []
# Заполняем список кнопками из аргументов args и kwargs
if args:
for button in args:
buttons.append(InlineKeyboardButton(
text=LEXICON[button] if button in LEXICON else button,
callback_data=button))
if kwargs:
for button, text in kwargs.items():
buttons.append(InlineKeyboardButton(
text=text,
callback_data=button))
# Распаковываем список с кнопками в билдер методом row c параметром width
kb_builder.row(*buttons, width=width)
kb_builder.row(InlineKeyboardButton(text="Open Webview", web_app=WebAppInfo(url="https://example.com/")))
# Возвращаем объект инлайн-клавиатуры
return kb_builder.as_markup()
keyboards
импортируешь keyboard_menu
, а в твоём keyboards
такого нет, потому что у тебя там menu_keyboard