Ciao, abbiamo lavorato a uno strumento per creare categorie utilizzando un input CSV. Siamo stati in grado di stabilire con successo le relazioni padre-figlio durante la creazione delle categorie. Tuttavia, stiamo riscontrando problemi quando si tratta di applicare le impostazioni delle categorie: fallisce costantemente. Qualsiasi guida su come applicare le impostazioni delle categorie (come quelle elencate di seguito) dopo aver creato una nuova categoria sarebbe apprezzata. Abbiamo persino provato ad aggiungere un ritardo fino a 40 secondi prima di applicare le impostazioni, ma non funziona ancora.
Voglio anche aggiornare la descrizione della categoria :: update_about_post(category_id, description) # Aggiorna solo la descrizione.
Inoltre, volevo aggiungere due campi personalizzati aggiuntivi per la categoria, come posso aggiungerli.
Funzione per aggiornare le impostazioni della categoria
def update_category_settings(category_id):
time.sleep(5) # Aggiungi un ritardo per assicurarti che la categoria sia completamente creata prima di applicare le impostazioni
url = f"{DISCOURSE_URL}/categories/{category_id}"
data = {
"subcategory_list_style": "boxes", # Imposta lo stile della sottocategoria su "Boxes"
"show_subcategory_list": True, # Mostra l'elenco delle sottocategorie sopra gli argomenti
"allow_solved_on_category": True # Abilita la funzionalità "solved"
}
response = requests.put(url, json={"category": data}, headers=headers)
if response.status_code == 200:
print(f"Impostazioni della categoria aggiornate per l'ID categoria {category_id}")
else:
print(f"Impossibile aggiornare le impostazioni per l'ID categoria {category_id}: {response.status_code}, {response.text}")
Non l’ho testato con Python, ma varrebbe la pena provare a usare la stringa "true" invece del booleano True per i parametri booleani. Discourse interpreterà le stringhe "true" e "false" come booleani.
Presumo che tu sia in grado di far funzionare alcune chiamate API e che tu stia avendo problemi solo con questa in particolare. Facci sapere se non è così.
Grazie Simon… hai assolutamente ragione, riesco a far funzionare alcune chiamate API… riesco a creare categorie con relazioni padre-figlio… è solo che non riesco ad aggiungere dettagli alla descrizione e altre impostazioni relative alle categorie non riesco a farle funzionare.
Proverei a usare \"true\" invece di True se non riesci a farlo funzionare.
Penso che sia previsto. Per aggiungere la descrizione devi modificare l’argomento “about” della categoria. Sfortunatamente, non credo che l’URL dell’argomento “about” venga restituito da una richiesta all’URL della categoria (ad esempio http://localhost:4200/categories/10.json). Puoi ottenerlo dall’URL categories/json del tuo sito. Il campo che contiene l’URL dell’argomento “about” si chiama topic_url. Ad esempio: \"topic_url\":\"/t/about-the-general-category/3\".
Quindi, a meno che non ci sia un modo più semplice che non vedo, dovrai effettuare una richiesta a /categories.json, ottenere il topic_url per la categoria che ti interessa, quindi effettuare una richiesta API per modificare il primo post di quell’argomento.