Как добавить тэг к посту в форуме?
Мне нужно по слэш команде создавать несколько постов в канале-форуме. Эти посты обязательно должны содержать метку (тэг) для того, чтобы было понятно к какой теме относится пост.
У меня возникла с этим проблема: я не понимаю как мне привязать тэг к посту. Вот мой код:
CHANNEL = BOT.get_channel(id)
await CHANNEL.create_thread(applied_tags="Логотип", name="ветка", content="текст")
Он крашится с ошибкой:
disnake.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'str' object has no attribute 'id'
Я понимаю, что в applied_tags нужно передать Snowflake, а не строку. Но я не понимаю, как через этот класс (Snowflake) мне получить тэг, который мне нужно использовать.
Пробовал получить ID тега, но не получилось, у дискорда просто нет такой функции. Пробовал искать ответ в гугле, но видимо я еще не набрался скилла искать ответ к проблеме, поэтому решил обратиться за помощью сюда.
Как привязать тэг к посту?
Ответы (1 шт):
Ошибка возникла из-за того, что аргумент applied_tags принимает список тегов формата discord.ForumTag, а не их названия.
Для примера, создадим тег и прикрепим его к посту:
CHANNEL = client.get_channel("channel_id") #Получаем канал-форум
TAG = await CHANNEL.create_tag(name="Tag name") #Создаём тег
await CHANNEL.create_thread(applied_tags=[TAG], name="Ветка", content="Текст") #Создаём пост, крепим к нему наш новый тег
Для получения уже существующего тега используем функцию get_tag, например:
CHANNEL = client.get_channel("channel_id") #Получаем канал-форум
TAG = await CHANNEL.get_tag("id") #Получаем тег по его ID
await CHANNEL.create_thread(applied_tags=[TAG], name="Ветка", content="Текст") #Создаём пост, крепим к нему наш найденный тег