غير قادر على تحديث إعدادات الفئة عبر API

مرحباً، لقد كنا نعمل على أداة لإنشاء فئات باستخدام مدخلات CSV. لقد تمكنا من إنشاء علاقات الأب والابن بنجاح أثناء إنشاء الفئات. ومع ذلك، فإننا نواجه مشكلات عند تطبيق إعدادات الفئة - فشلت باستمرار. أي توجيه حول كيفية تطبيق إعدادات الفئة (مثل تلك المدرجة أدناه) بعد إنشاء فئة جديدة سيكون موضع تقدير. لقد حاولنا حتى إضافة تأخير يصل إلى 40 ثانية قبل تطبيق الإعدادات، لكنها لا تزال لا تعمل.

نريد أيضًا تحديث وصف الفئة :: update_about_post(category_id, description) # تحديث الوصف فقط.

أردت أيضًا إضافة حقلين مخصصين إضافيين للفئة، كيف يمكن إضافة هذا.

دالة لتحديث إعدادات الفئة

def update_category_settings(category_id):
time.sleep(5) # إضافة تأخير لضمان إنشاء الفئة بالكامل قبل تطبيق الإعدادات

url = f"{DISCOURSE_URL}/categories/{category_id}"
data = {
    "subcategory_list_style": "boxes", # تعيين نمط الفئة الفرعية إلى "صناديق"
    "show_subcategory_list": True, # إظهار قائمة الفئات الفرعية فوق المواضيع
    "allow_solved_on_category": True # تمكين ميزة الحل
}

response = requests.put(url, json={"category": data}, headers=headers)

if response.status_code == 200:
    print(f"تم تحديث إعدادات الفئة للفئة ID {category_id}")
else:
    print(f"فشل تحديث الإعدادات للفئة ID {category_id}: {response.status_code}, {response.text}")

أي مدخلات ستكون موضع تقدير حيث أنني عالق في هذه المرحلة…

لم أجربه باستخدام بايثون، ولكن سيكون من المفيد محاولة استخدام السلسلة النصية "true" بدلاً من القيمة المنطقية True للمعلمات المنطقية. سيفسر Discourse السلاسل النصية "true" و "false" كقيم منطقية.

أفترض أنك قادر على إجراء بعض استدعاءات API بنجاح، وتواجه مشكلة مع هذا الاستدعاء تحديدًا. أخبرنا إذا لم يكن الأمر كذلك.

شكرا سيمون .. أنت على حق تمامًا ، أنا قادر على جعل بعض استدعاءات API تعمل … أنا قادر على إنشاء فئة بعلاقة الأصل والفرع … إنها فقط أنني غير قادر على إضافة تفاصيل الوصف ، وإعدادات أخرى متعلقة بالفئة غير قادر على جعلها تعمل.

حاولت تحديث بعض إعدادات الفئة في منتدى محلي من سطر الأوامر. هذا يعمل:

❯ curl -X PUT "http://localhost:4200/categories/10.json" \
      -H "Api-Key: $api_key" \
      -H "Api-Username: system" \
      -H "Content-Type: multipart/form-data;" \
      -F "show_subcategory_list=true" \
      -F "subcategory_list_style='boxes'" \
      -F "allow_badges=false"

سأحاول استخدام "true" بدلاً من True إذا لم تتمكن من جعله يعمل.

أعتقد أن هذا متوقع. لإضافة الوصف، تحتاج إلى تحرير موضوع “حول” الفئة. للأسف، لا أعتقد أن عنوان URL لموضوع “حول” يتم إرجاعه من طلب إلى عنوان URL للفئة (على سبيل المثال http://localhost:4200/categories/10.json). يمكنك الحصول عليه من عنوان URL categories/json الخاص بموقعك. الحقل الذي يحتوي على عنوان URL لموضوع “حول” يسمى topic_url. على سبيل المثال: "topic_url":"/t/about-the-general-category/3".

لذلك، ما لم تكن هناك طريقة أسهل لا أراها، ستحتاج إلى إجراء طلب إلى /categories.json، والحصول على topic_url للفئة التي تهتم بها، ثم إجراء طلب API لتعديل المنشور الأول لهذا الموضوع.