2017-08-16 1 views
0

J'ai un projet Django et j'essaye de créer un sitemap pour mes URLs statiques (pas de modèles). Cependant, lors de l'exécution python manage.py runserver et va http://127.0.0.1:8000/sitemap.xml, je l'obtiens vide:sitemap.xml vide pour les URLs statiques dans Django

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"></urlset> 

Mon code ressemble à ceci:

#urls.py 
from main_app.sitemaps import StaticSitemap 

sitemaps = { 
    'static': StaticSitemap(), 
} 

urlpatterns = [ 
    ... 
    url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps}), 
    ... 
] 
urlpatterns += i18n_patterns(
... 
) 

et

#sitemaps.py 
from django.contrib.sitemaps import Sitemap 
from django.urls import reverse 

class StaticSitemap(Sitemap): 
    priority = 0.5 
    changefreq = 'weekly' 
    i18n = True 

    def location(self, item): 
     return reverse(item) 

Le documentation montre un exemple avec Models et il modifie la fonction items; mais puisque je n'ai pas, je ne suis pas sûr si je manque quelque chose là.

Qu'est-ce que je fais mal?

Répondre

0

Je viens de découvrir quel était le problème.

Il semble que vous deviez définir la fonction items de toute façon.

def items(self): 
    list_of_url_names = ['home', 'about', ..., 'contact'] 
    return list_of_url_names 

puis sitemap.xml n'est plus vide.