2017-08-16 4 views
0

Ich habe ein Django-Projekt und ich versuche eine Sitemap für meine statischen URLs (keine Modelle) zu erstellen. Wenn jedoch python manage.py runserver und gehen http://127.0.0.1:8000/sitemap.xml laufen, bekomme ich es leer:sitemap.xml leer für statische URLs in Django

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

Mein Code sieht wie folgt aus:

#urls.py 
from main_app.sitemaps import StaticSitemap 

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

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

und

#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) 

Die documentation zeigt ein Beispiel mit Models und es ändert die Funktion items; aber da ich es nicht habe, bin ich mir nicht sicher, ob ich da etwas verpasse.

Was mache ich falsch?

Antwort

0

Ich habe gerade herausgefunden, was das Problem war.

Es scheint, dass Sie die Funktion items sowieso definieren müssen.

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

und dann sitemap.xml ist nicht mehr leer.