カテゴリのデフォルトトピックを削除できません

APIエンドポイントを使用してトピックを削除しようとしています。

「通常の」トピックは削除できますが、デフォルトのトピックである「About the ________ category」という名前のトピックは削除できないという問題に遭遇しました。

{{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経由で非公開トピックを特定できると思いますか?

「いいね!」 3

これらのトピックを削除したい理由を教えていただけますか?これらは削除できない特別なトピックです。

もしカテゴリ内のすべてのトピックを削除してからカテゴリ自体を削除したいのであれば、Aboutトピックを削除せずにカテゴリを削除することができます。

ユーザーがAboutトピックを何らかの方法で削除しようとする場合、@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

「いいね!」 2