Olá, temos trabalhado em uma ferramenta para criar categorias usando uma entrada CSV. Conseguimos estabelecer com sucesso os relacionamentos pai-filho ao criar as categorias. No entanto, estamos encontrando problemas ao aplicar as configurações de categoria — falha consistentemente. Qualquer orientação sobre como aplicar as configurações de categoria (como as listadas abaixo) após a criação de uma nova categoria seria apreciada. Tentamos até adicionar um atraso de até 40 segundos antes de aplicar as configurações, mas ainda não está funcionando.
Também quero atualizar a descrição da categoria :: update_about_post(category_id, description) # Atualiza apenas a descrição.
Também queria adicionar dois campos personalizados adicionais para a Categoria, como adiciono isso.
Função para atualizar as configurações da categoria
def update_category_settings(category_id):
time.sleep(5) # Adiciona um atraso para garantir que a categoria seja totalmente criada antes de aplicar as configurações
url = f"{DISCOURSE_URL}/categories/{category_id}"
data = {
"subcategory_list_style": "boxes", # Define o estilo da subcategoria como "Caixas"
"show_subcategory_list": True, # Mostra a lista de subcategorias acima dos tópicos
"allow_solved_on_category": True # Habilita o recurso de resolvido
}
response = requests.put(url, json={"category": data}, headers=headers)
if response.status_code == 200:
print(f"Configurações da categoria atualizadas para o ID da categoria {category_id}")
else:
print(f"Falha ao atualizar configurações para o ID da categoria {category_id}: {response.status_code}, {response.text}")
Não testei com Python, mas valeria a pena tentar usar a string "true" em vez do booleano True para os parâmetros booleanos. O Discourse interpretará as strings "true" e "false" como booleanos.
Presumo que você consiga fazer com que algumas chamadas de API funcionem e esteja tendo problemas apenas com esta em particular. Informe-nos se não for o caso.
Obrigado Simon… você está absolutamente correto, consigo fazer algumas chamadas de API funcionarem… consigo criar categorias com relacionamento pai e filho… é só que não consigo adicionar detalhes de descrição e outras configurações relacionadas à categoria que não consigo fazer funcionar.
Eu tentaria usar \"true\" em vez de True se você não conseguir fazer funcionar.
Acho que isso é esperado. Para adicionar a descrição, você precisa editar o tópico “sobre” da categoria. Infelizmente, acho que a URL do tópico “sobre” não é retornada de uma solicitação para a URL da categoria (por exemplo, http://localhost:4200/categories/10.json). Você pode obtê-la do URL categories/json do seu site. O campo que contém a URL do tópico “sobre” é chamado topic_url. Por exemplo: \"topic_url\":\"/t/about-the-general-category/3\".
Portanto, a menos que haja uma maneira mais fácil que eu não esteja vendo, você precisará fazer uma solicitação para /categories.json, obter o topic_url para a categoria de seu interesse e, em seguida, fazer uma solicitação de API para editar a primeira postagem desse tópico.