fix_sitemap_sites.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #!/usr/bin/env python3
  2. """
  3. Script pour configurer automatiquement django.contrib.sites
  4. Corrige le problème de sitemap vide
  5. """
  6. import os
  7. import sys
  8. from pathlib import Path
  9. # Ajouter le répertoire parent au path
  10. sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
  11. # Configuration Django
  12. os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'duhaz_blog.settings')
  13. import django
  14. django.setup()
  15. from django.contrib.sites.models import Site
  16. def configure_site():
  17. """Configure django.contrib.sites pour le sitemap"""
  18. print("\n" + "="*70)
  19. print("CONFIGURATION DE DJANGO.CONTRIB.SITES")
  20. print("="*70 + "\n")
  21. try:
  22. # Vérifier si le site existe
  23. try:
  24. site = Site.objects.get(id=1)
  25. print(f"✅ Site existant trouvé :")
  26. print(f" ID: {site.id}")
  27. print(f" Domaine: {site.domain}")
  28. print(f" Nom: {site.name}")
  29. # Vérifier si le domaine est correct
  30. if site.domain != 'www.duhaz.fr':
  31. print(f"\n⚠️ Domaine incorrect : {site.domain}")
  32. print(f" Mise à jour vers : www.duhaz.fr")
  33. site.domain = 'www.duhaz.fr'
  34. site.name = 'Mr Duhaz'
  35. site.save()
  36. print(" ✅ Domaine mis à jour !")
  37. else:
  38. print("\n✅ Domaine correct !")
  39. except Site.DoesNotExist:
  40. print("⚠️ Aucun site avec ID=1 trouvé")
  41. print(" Création du site...")
  42. # Créer le site
  43. site = Site.objects.create(
  44. id=1,
  45. domain='www.duhaz.fr',
  46. name='Mr Duhaz'
  47. )
  48. print(f"✅ Site créé avec succès !")
  49. print(f" ID: {site.id}")
  50. print(f" Domaine: {site.domain}")
  51. print(f" Nom: {site.name}")
  52. # Vérifier les autres sites
  53. all_sites = Site.objects.all()
  54. if all_sites.count() > 1:
  55. print(f"\n⚠️ {all_sites.count()} sites trouvés :")
  56. for s in all_sites:
  57. print(f" - ID: {s.id}, Domaine: {s.domain}")
  58. print("\n Si vous avez des sites inutiles, vous pouvez les supprimer.")
  59. print("\n" + "="*70)
  60. print("CONFIGURATION TERMINÉE")
  61. print("="*70)
  62. print("\n✅ django.contrib.sites est maintenant configuré !")
  63. print("\n📝 Prochaines étapes :")
  64. print(" 1. Redémarrer votre serveur Django")
  65. print(" 2. Vérifier le sitemap : https://www.duhaz.fr/sitemap.xml")
  66. print(" 3. Exécuter : python scripts/diagnose_sitemap.py")
  67. return 0
  68. except Exception as e:
  69. print(f"\n❌ Erreur : {e}")
  70. import traceback
  71. traceback.print_exc()
  72. return 1
  73. if __name__ == "__main__":
  74. sys.exit(configure_site())