#!/usr/bin/env python3 """ Script pour configurer automatiquement django.contrib.sites Corrige le problème de sitemap vide """ import os import sys from pathlib import Path # Ajouter le répertoire parent au path sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) # Configuration Django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'duhaz_blog.settings') import django django.setup() from django.contrib.sites.models import Site def configure_site(): """Configure django.contrib.sites pour le sitemap""" print("\n" + "="*70) print("CONFIGURATION DE DJANGO.CONTRIB.SITES") print("="*70 + "\n") try: # Vérifier si le site existe try: site = Site.objects.get(id=1) print(f"✅ Site existant trouvé :") print(f" ID: {site.id}") print(f" Domaine: {site.domain}") print(f" Nom: {site.name}") # Vérifier si le domaine est correct if site.domain != 'www.duhaz.fr': print(f"\n⚠️ Domaine incorrect : {site.domain}") print(f" Mise à jour vers : www.duhaz.fr") site.domain = 'www.duhaz.fr' site.name = 'Mr Duhaz' site.save() print(" ✅ Domaine mis à jour !") else: print("\n✅ Domaine correct !") except Site.DoesNotExist: print("⚠️ Aucun site avec ID=1 trouvé") print(" Création du site...") # Créer le site site = Site.objects.create( id=1, domain='www.duhaz.fr', name='Mr Duhaz' ) print(f"✅ Site créé avec succès !") print(f" ID: {site.id}") print(f" Domaine: {site.domain}") print(f" Nom: {site.name}") # Vérifier les autres sites all_sites = Site.objects.all() if all_sites.count() > 1: print(f"\n⚠️ {all_sites.count()} sites trouvés :") for s in all_sites: print(f" - ID: {s.id}, Domaine: {s.domain}") print("\n Si vous avez des sites inutiles, vous pouvez les supprimer.") print("\n" + "="*70) print("CONFIGURATION TERMINÉE") print("="*70) print("\n✅ django.contrib.sites est maintenant configuré !") print("\n📝 Prochaines étapes :") print(" 1. Redémarrer votre serveur Django") print(" 2. Vérifier le sitemap : https://www.duhaz.fr/sitemap.xml") print(" 3. Exécuter : python scripts/diagnose_sitemap.py") return 0 except Exception as e: print(f"\n❌ Erreur : {e}") import traceback traceback.print_exc() return 1 if __name__ == "__main__": sys.exit(configure_site())