django.template.response.ContentNotRenderedError:
The response content must be rendered before it can be accessed.
Cause : La réponse Django doit être rendue avant de pouvoir accéder à son contenu.
Solution : Appeler response.render() avant d'accéder à response.content
UnorderedObjectListWarning: Pagination may yield inconsistent results
with an unordered object_list: <class 'blog.models.Cat_Blog'> QuerySet.
Cause : Les QuerySets utilisés dans le sitemap doivent être ordonnés pour la pagination.
Solution : Ajouter .order_by() à tous les QuerySets
scripts/generate_sitemap_preview.pyAvant :
response = views.sitemap(request, sitemaps)
with open(output_file, 'wb') as f:
f.write(response.content) # ❌ Erreur ici
Après :
response = views.sitemap(request, sitemaps)
response.render() # ✅ Rendre avant d'accéder au contenu
with open(output_file, 'wb') as f:
f.write(response.content)
blog/sitemaps.pyCategorySitemap - Avant :
def items(self):
return Cat_Blog.objects.all() # ❌ Non ordonné
CategorySitemap - Après :
def items(self):
return Cat_Blog.objects.all().order_by('cb_titre') # ✅ Ordonné
PageSitemap - Avant :
def items(self):
return Page.objects.filter(p_publier=True, p_type='page') # ❌ Non ordonné
PageSitemap - Après :
def items(self):
return Page.objects.filter(
p_publier=True,
p_type='page'
).order_by('p_adresse') # ✅ Ordonné
Après correction, tester avec :
python scripts/generate_sitemap_preview.py
Le script devrait maintenant :
static/sitemap_preview.xmlscripts/generate_sitemap_preview.py - Ajout de response.render()blog/sitemaps.py - Ajout de .order_by() dans 2 classesCes corrections sont nécessaires pour le bon fonctionnement du sitemap en production. Sans elles :
python scripts/fix_sitemap_sites.pyCes corrections font partie de la résolution complète des problèmes SEO.