ImportError: невозможно импортировать имя «Модальное».Python

Программы на Python
Ответить
Anonymous
 ImportError: невозможно импортировать имя «Модальное».

Сообщение Anonymous »

Traceback (последний последний вызов):
Файл "C:\Users\Aaaaa\Desktop\boy\bot.py", строка 2, в
из disnake import Intents, модальный , TextInputStyle, Embed, ButtonStyle, ActionRow, Button, ui
ImportError: невозможно импортировать имя «Modal» из «disnake» (C:\Users\Aaaaa\AppData\Local\Programs\Python\Python312\Lib\site-packages\disnake_init_.py)
Я думаю Я написал код без ошибок, но он не дает мне загрузить необходимые модули из disnake. может кто-нибудь объяснить, в чем причина? вот код:

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

import disnake
from disnake import Intents, Modal, TextInputStyle, Embed, ButtonStyle, ActionRow, Button, ui
from disnake.ext import commands

intents = Intents.default()
intents.members = True

bot = commands.Bot(command_prefix="!", intents=intents)

# Канал для отправки заявок
APPLICATION_CHANNEL_ID = 1313915216211214476  # Замените на ID Вашего канала
verification_message_id = None

# Эмбед с предложением о верификации
@bot.event
async def on_ready():
print(f'Мы вошли как {bot.user}')
channel = bot.get_channel(APPLICATION_CHANNEL_ID)
embed = Embed(title="Верификация", description="Пожалуйста, нажмите кнопку ниже для заполнения формы верификации.")
global verification_message_id
verification_message = await channel.send(embed=embed, components=[Button(label="Заполнить форму", style=ButtonStyle.green)])
verification_message_id = verification_message.id

# Обработка нажатия на кнопку
@bot.component("Заполнить форму")
async def form_button(interaction: disnake.MessageInteraction):
modal = Modal("Форма верификации", timeout=60)
modal.add_item(disnake.TextInput("Имя", style=TextInputStyle.short))
modal.add_item(disnake.TextInput("Возраст", style=TextInputStyle.short))
modal.add_item(disnake.TextInput("Цель прибывания", style=TextInputStyle.paragraph))
await interaction.send_modal(modal)

# Обработка отправки модального окна
@bot.modal("Форма верификации")
async def handle_modal(modal: Modal, interaction: disnake.MessageInteraction):
username = modal.children[0].value
age = modal.children[1].value
purpose = modal.children[2].value

user = interaction.user
embed = Embed(title="Новая заявка", description="Заявка на верификацию")
embed.add_field(name="Имя", value=username)
embed.add_field(name="Возраст", value=age)
embed.add_field(name="Цель прибывания", value=purpose)
embed.add_field(name="ID пользователя", value=user.id)
embed.add_field(name="Дата создания аккаунта", value=user.created_at.strftime("%Y-%m-%d %H:%M:%S"))
embed.add_field(name="Дата присоединения к серверу", value=user.joined_at.strftime("%Y-%m-%d %H:%M:%S"))
embed.set_thumbnail(url=user.avatar.url)

# Отправляем заявку в отдельный канал
application_channel = bot.get_channel(APPLICATION_CHANNEL_ID)
application_message = await application_channel.send(embed=embed, components=[
ActionRow(
Button(label="Принять", style=ButtonStyle.green, custom_id="accept"),
Button(label="Отклонить", style=ButtonStyle.red, custom_id="decline")
)
])

# Делаем так, чтобы пользователю отправлялось подтверждение
await interaction.send("Ваша заявка была отправлена.", ephemeral=True)

# Обработка кнопок принятия и отклонения заявки
@bot.component("accept")
async def accept_button(interaction: disnake.MessageInteraction):
role = disnake.utils.get(interaction.guild.roles, name="member")  # Замените на название Вашей роли
await interaction.user.add_roles(role)
await interaction.send("Заявка принята. Вы получили роль 'member'.", ephemeral=True)

@bot.component("decline")
async def decline_button(interaction: disnake.MessageInteraction):
await interaction.send("Заявка отклонена.", ephemeral=True)

# Запуск бота
bot.run("TOKEN")  # Замените на токен Вашего бота

Я попробовал переустановить библиотеку disnake, думая, что, возможно, переустановка поможет, но увы(

Подробнее здесь: https://stackoverflow.com/questions/792 ... name-modal
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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