Discord.py — ui.Modal.children имеет пустые строковые значения после отправкиPython

Программы на Python
Anonymous
Discord.py — ui.Modal.children имеет пустые строковые значения после отправки

Сообщение Anonymous »

Я пишу бота Discord для создания и управления опросами для сервера, частью которого я являюсь, используя оболочку discord.py. Я реализовал базовую команду слэша для создания опроса, который принимает необязательное целое число, чтобы установить количество вариантов для голосования (значение по умолчанию — 2):

Код: Выделить всё

@bot.tree.command(name="votazione")
async def make_poll(
interaction: discord.Interaction,
*,
titolo: str,
opzioni: int = 2,
canale: discord.TextChannel | None = None,
maggioranza: int | None = None
):

options = PollOptions(f"test per voto: {titolo}", opzioni)
await interaction.response.send_modal(options)

for option in options.children:
print(len(option.value))
После вызова он инициирует объект ui.Modal с эквивалентным количеством элементов ui.TextInput:

Код: Выделить всё

class PollOptions(ui.Modal):

def __init__(self, title: str, n: int):
super().__init__(title=title)
self.make_options(n)

def make_options(self, n):

for i in range(n):
self.add_item(ui.TextInput(label=f"Opzione {i+1}"))

async def on_submit(self, interaction: discord.Interaction):

await interaction.response.defer()
Идея состоит в том, чтобы позволить пользователю ввести текст вариантов голосования, которые будут использоваться в опросе. Затем я бы извлек их с помощью PollOptions.children.value и создал фактический объект Poll.
Проблема здесь в том, что этот оператор print в первый блок кода сообщает мне, что все значения имеют длину 0 (чего не должно быть, во всех тестах я записываю непустые строки в текстовые поля перед отправкой).
Что здесь происходит? Я не очень хорошо знаком с Discord API, и никаких ошибок не появляется (я записываю все исключения в регистратор), поэтому понятия не имею.
Что я пробовал :
  • Я создал косую черту, которая создает модальное окно и должна вернуть мне введенные пользователем данные
Что я ожидал:
  • Чтобы получить введенные пользователем данные, вставленные в поля TextInput модального окна
Что произошло на самом деле:
  • Вместо этого появились пустые строки


Подробнее здесь: https://stackoverflow.com/questions/785 ... ter-submit

Вернуться в «Python»