Send data with callback_data #2815
-
Good night, def function1(update: Update, context: CallbackContext) -> None:
query = update.callback_query
query.answer()
response_API = requests.get('http://127.0.0.1:5000/subject')
keyboard = [
[InlineKeyboardButton(text = response_API.json()["subjects"][subject_id]["title"], callback_data = 'function2' + '$subject_id')] for subject_id in range(len(response_API.json()["subjects"]))
]
keyboard.append([InlineKeyboardButton(text = '🔙 Volver Atrás', callback_data = 'comandos')])
query.edit_message_text(
text = "Select...: ",
reply_markup = InlineKeyboardMarkup(keyboard)
)
def function2(update: Update, context: CallbackContext, subject_id) -> None:
query = update.callback_query
query.answer()
response_API = requests.get('http://127.0.0.1:5000/lesson/<subject_id>')
keyboard = [
[InlineKeyboardButton(text = response_API.json()["lesson"][i]["title"], callback_data = 'function3')] for i in range(len(response_API.json()["lesson"]))
]
keyboard.append([InlineKeyboardButton(text = '🔙 Volver Atrás', callback_data = 'function1')])
query.edit_message_text(
text = "Select...: ",
reply_markup = InlineKeyboardMarkup(keyboard)
) |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
Hi. |
Beta Was this translation helpful? Give feedback.
Hi.
callback_data = 'function2' + '$subject_id'
gives the constant string'function2$subject_id'
. If you want to insert thesubject_id
into the string, you should use e.g.f'funtion2 {subject_id}
- please look up "python string formatting" on your favorite search engineAlso in
function2
you don't even accessquery.data
.I recommend to have a look at this example.