@GeneralDik

Как решить проблему с объектом который не имеет атрибута 'send_modal'?

Ошибка:
await ctx.send_modal(MyModal)
          ^^^^^^^^^^^^^^
AttributeError: 'MyButton' object has no attribute 'send_modal'

Мой код:
class MyModal(discord.ui.Modal, title="test"):
    discord.ui.TextInput(label="fqqw", placeholder="qfwqwffw", style=discord.TextStyle.short)

class MyButton(discord.ui.View):
    @discord.ui.button(label='Закрыть', style=discord.ButtonStyle.red, emoji='❌')
    async def button_callback(ctx, self, interaction):
        modal1 = MyModal()
        await ctx.send_modal(MyModal)


Прошу помочь с решением ошибки
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
1) Узнайте что такое self, является ли это ключевым словом или просто переменной и что туда передается, где обычно пишут self.

2) Узнайте в чем отличие класса от экземпляра класса. Подумайте над 8 строчкой, должен ли туда передаваться класс или его экземпляр.

3) Узнайте что такое ctx, чем отличается Context от Interation. Тот же вопрос другим боком: чем отличаются команды от слеш-команд.

4) Определитесь вам нужен send_model или send_modal (перечитайте заголовок вопроса и сам вопрос и исправьте)

5) Когда разберетесь с вопросом 4, нужный метод доступен для класса InteractionMessage. Найдите его среди ваших объектов, используя функцию type(some_object)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix
yellow
ctx и self местами поменять
Ответ написан
Ваш ответ на вопрос

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

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