Невозможно удалить тему по умолчанию категории

Здравствуйте, я пытаюсь использовать конечную точку API для удаления тем.

Я могу удалять «обычные» темы, но столкнулся с проблемой: тему по умолчанию удалить нельзя. Речь о теме с названием «О категории ________».

{{baseUrl}}/t/{{id}}.json

У меня следующие вопросы:

  • Как удалить эту тему через API?
  • Как идентифицировать эту тему через API, чтобы пропускать её?

Пример

    url = base_url + "/c/" + slug + "/22.json"
    response = requests.request("GET", url, headers=headers, data=payload)

    for topic in response.json()["topic_list"]["topics"]:
        # Удаляет каждую тему

        url =  base_url + "/t/topic_id.json".replace("topic_id", str(topic["id"])  )
        response = requests.request("DELETE", url, headers=headers, data=payload)

Вы можете установить темы описания категории как «скрытые». Я делаю это для всех своих категорий. Подозреваю, что вы можете идентифицировать скрытые темы через API?

Можете ли вы объяснить, почему вы хотите удалить эти темы? Это специальные темы, которые нельзя и не предназначены для удаления.

Если ваша цель — удалить все темы, а затем удалить категорию, вы можете удалить категорию, не удаляя тему «О нас».

Когда люди хотят как-то избавиться от тем «О нас», лучший способ — скрыть их из списка, как предложил @Lilly.

Полагаю, у этих постов нет уникальных атрибутов. Они определяются как специальные темы в таблице category через столбец topic_id.

Вы можете получить их с помощью конечной точки /c/{id}/show.json: https://docs.discourse.org/#tag/Categories/operation/getCategory.
Ищите ключ topic_url.

Например:

https://meta.discourse.org/c/7/show.json

"topic_url": "/t/about-the-dev-category/1026"

Немного более технической информации, если это вас интересует.

Защита от удаления :shield: находится здесь: discourse/lib/guardian/topic_guardian.rb at 7ecaf6295daf8759aa98d00e7035c4dc0f853303 · discourse/discourse · GitHub

И используемый метод определён здесь: discourse/app/models/topic.rb at 7ecaf6295daf8759aa98d00e7035c4dc0f853303 · discourse/discourse · GitHub