Hallo, wir haben an einem Tool gearbeitet, um Kategorien mithilfe einer CSV-Eingabe zu erstellen. Es ist uns gelungen, die Eltern-Kind-Beziehungen bei der Erstellung der Kategorien erfolgreich herzustellen. Wir stoßen jedoch auf Probleme bei der Anwendung von Kategorieeinstellungen – es schlägt durchweg fehl. Jeder Hinweis zur Anwendung von Kategorieeinstellungen (wie die unten aufgeführten) nach der Erstellung einer neuen Kategorie wäre willkommen. Wir haben sogar versucht, eine Verzögerung von bis zu 40 Sekunden vor der Anwendung der Einstellungen hinzuzufügen, aber es funktioniert immer noch nicht.
Ich möchte auch die Kategoriebeschreibung aktualisieren :: update_about_post(category_id, description) # Nur Beschreibung aktualisieren.
Außerdem wollte ich zwei zusätzliche benutzerdefinierte Felder für die Kategorie hinzufügen, wie kann ich das tun?
Funktion zum Aktualisieren der Kategorieeinstellungen
def update_category_settings(category_id):
time.sleep(5) # Füge eine Verzögerung hinzu, um sicherzustellen, dass die Kategorie vollständig erstellt ist, bevor die Einstellungen angewendet werden
url = f"{DISCOURSE_URL}/categories/{category_id}"
data = {
"subcategory_list_style": "boxes", # Unterkategorienstil auf "Boxen" setzen
"show_subcategory_list": True, # Unterkategorienliste über Themen anzeigen
"allow_solved_on_category": True # Gelöst-Funktion aktivieren
}
response = requests.put(url, json={"category": data}, headers=headers)
if response.status_code == 200:
print(f"Kategorieeinstellungen für Kategorie-ID {category_id} aktualisiert")
else:
print(f"Fehler beim Aktualisieren der Einstellungen für Kategorie-ID {category_id}: {response.status_code}, {response.text}")
Ich habe es nicht mit Python getestet, aber es wäre einen Versuch wert, den String "true" anstelle des Boole’schen Werts True für die booleschen Parameter zu verwenden. Discourse interpretiert die Strings "true" und "false" als Boole’sche Werte.
Ich gehe davon aus, dass Sie einige API-Aufrufe zum Laufen bringen können und nur mit diesem speziellen Aufruf Probleme haben. Lassen Sie uns wissen, wenn das nicht der Fall ist.
Danke Simon… Sie haben absolut Recht, ich kann einige API-Aufrufe zum Laufen bringen… ich kann Kategorien mit Eltern-Kind-Beziehung erstellen… es ist nur so, dass ich keine Beschreibungsdetails und andere kategorienbezogene Einstellungen hinzufügen kann, um sie zum Laufen zu bringen.
Ich würde versuchen, "true" anstelle von True zu verwenden, wenn es nicht funktioniert.
Ich denke, das ist zu erwarten. Um die Beschreibung hinzuzufügen, müssen Sie das “About”-Thema der Kategorie bearbeiten. Leider glaube ich nicht, dass die URL des “About”-Themas aus einer Anfrage an die Kategorie-URL (z. B. http://localhost:4200/categories/10.json) zurückgegeben wird. Sie können sie jedoch von der categories/json-URL Ihrer Website abrufen. Das Feld, das die URL des “About”-Themas enthält, heißt topic_url. Zum Beispiel: "topic_url":"/t/about-the-general-category/3".
Es sei denn, es gibt einen einfacheren Weg, den ich nicht sehe, müssen Sie eine Anfrage an /categories.json stellen, die topic_url für die gewünschte Kategorie abrufen und dann eine API-Anfrage stellen, um den ersten Beitrag dieses Themas zu bearbeiten.