Das Standardthema einer Kategorie kann nicht gelöscht werden

Hallo, ich versuche, den API-Endpunkt zum Löschen von Themen zu verwenden.

Ich kann „normale“ Themen löschen, bin aber auf das Problem gestoßen, dass das Standardthema nicht gelöscht werden kann. Das mit dem Namen „Über die ________ Kategorie“

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

Hier sind meine Fragen:

  • Wie kann ich dieses Thema über die API löschen?
  • Wie kann ich dieses Thema über die API identifizieren, damit es übersprungen wird.

Beispiel

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

    for topic in response.json()["topic_list"]["topics"]:
        # Löscht jedes Thema

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

Sie können die Kategoriebeschreibungsthemen auf „nicht aufgeführt“ setzen. Das mache ich bei allen meinen. Ich vermute, Sie können die nicht aufgeführten Themen über die API identifizieren?

3 „Gefällt mir“

Können Sie mitteilen, warum Sie diese Themen entfernen möchten? Dies sind spezielle Themen, die nicht gelöscht werden können und nicht gelöscht werden sollen.

Wenn Ihr Ziel ist, alle Themen zu löschen und dann die Kategorie zu löschen, können Sie die Kategorie löschen, ohne das Thema “About” zu löschen.

Wenn Leute die “About”-Themen irgendwie loswerden wollen, ist das Auslisten, wie @Lilly vorschlägt, der richtige Weg.

Ich denke, diese Beiträge haben keine eindeutigen Attribute. Sie werden als spezielle Themen aus der category-Tabelle über die Spalte topic_id identifiziert.

Sie können sie mit dem Endpunkt /c/{id}/show.json abrufen: https://docs.discourse.org/#tag/Categories/operation/getCategory.
Suchen Sie nach dem Schlüssel topic_url.

Zum Beispiel:

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

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

Ein paar weitere technische Informationen, falls Sie daran interessiert sind.

Der Löschschutz :shield: befindet sich hier: discourse/lib/guardian/topic_guardian.rb at 7ecaf6295daf8759aa98d00e7035c4dc0f853303 · discourse/discourse · GitHub

Und die verwendete Methode ist hier definiert: discourse/app/models/topic.rb at 7ecaf6295daf8759aa98d00e7035c4dc0f853303 · discourse/discourse · GitHub

2 „Gefällt mir“