async def использование if-else
Хочу выдавать разную keyboard buttom для разных статусов юзеров. При добавлении if/else клавиатура в целом перестает отображаться, так же пытался сделать ветвление в клавиатуре, пробовал изменить SQL запрос. Скорее всего, вопрос простой, но сижу долго не могу понять в чем проблема:
@dp.message_handler(commands=['start'])
async def start(message: types.Message):
name = message.chat.first_name
users = db.status(message)
await db.add_new_sub(message)
for user in users:
if not user:
await message.answer(f'Привет, {name}!',
reply_markup=get_start_kb())
else:
await message.answer(f'Привет, {name}!',
reply_markup=get_start_approve_kb())
функция status:
def status(message):
stat = cur.execute("SELECT * FROM users WHERE user_id=? AND status='Current_group_member'", (message.chat.id,))
return stat
Клавиатуры:
def get_start_kb() -> ReplyKeyboardMarkup:
kb = ReplyKeyboardMarkup(keyboard=[
[KeyboardButton('О группе')],
[KeyboardButton('Техническая поддержка')],
[KeyboardButton('Купить подписку')],
],
resize_keyboard=True,
input_field_placeholder='Бот распознаёт только нажатие кнопок')
return kb
def get_start_approve_kb() -> ReplyKeyboardMarkup:
kb = ReplyKeyboardMarkup(keyboard=[
[KeyboardButton('О группе')],
[KeyboardButton('Техническая поддержка')],
[KeyboardButton('Состояние подписки')],
],
resize_keyboard=True,
input_field_placeholder='Бот распознаёт только нажатие кнопок')
return kb
Источник: Stack Overflow на русском