2016-10-19 2 views
0

Meine Sitemap erzeugt auf diese Weise:Wie formatiert django generierte Sitemap lastmod date?

from django.contrib.sitemaps import Sitemap 
from django.utils import timezone 

class StaticViewSitemap(Sitemap): 
    priority = 0.5 
    changefreq = 'daily' 

     def items(self): 
      return ['index', 'contacts'] 

     def lastmod(self, item): 
      return timezone.now() 

Als django docs says, lastmod Datetime zurückkehrt. Es macht sitemap.xml lastmod zu 'yyyy-mm-dd' Format und sieht so:

<urlset> 
    <url> 
     <loc>http://127.0.0.1/index</loc> 
     <lastmod>2016-10-19</lastmod> 
     <changefreq>daily</changefreq> 
    </url> 
    <url> 
     <loc>http://127.0.0.1/contacts</loc> 
     <lastmod>2016-10-19</lastmod> 
     <changefreq>daily</changefreq> 
    </url> 
</urlset> 

Aber wie kann ich lastmod Format ISO8601 ändern (Ich brauche dies: 2008-01-02T10: 30: 00+ 02.00), dies zu erhalten:

<urlset> 
    <url> 
     <loc>http://127.0.0.1/index</loc> 
     <lastmod>2016-10-19T00:25:00+03:00</lastmod> 
     <changefreq>daily</changefreq> 
    </url> 
    <url> 
     <loc>http://127.0.0.1/contacts</loc> 
     <lastmod>2016-10-19T00:25:00+03:00</lastmod> 
     <changefreq>daily</changefreq> 
    </url> 
</urlset> 

ich habe rumgespielt machen Weg custom ‚Formate‘ wie die here (Lokalisierung Django-Format), aber welche Einstellung sollte ich bekommen ändern entsprechende Datumsformat nicht gefunden. Danke.

Mein urls.py:

... 

sitemaps = { 
    'static': StaticViewSitemap 
} 

urlpatterns = [ 
    ... 
    url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap'), 
    ... 
] 
+0

Wie generieren Sie Ihre Sitemap? Veröffentlichen Sie Ihre 'urls.py' und alle benutzerdefinierten Sitemap-Vorlagen (falls vorhanden). – Selcuk

+0

Ich habe ein Update hinzugefügt. – mikhaylenko

+0

Sie sollten eine benutzerdefinierte Vorlage schreiben, das entsprechende Datetime-Format verwenden und diese Vorlage in Ihre 'urls.py' einfügen. Einzelheiten finden Sie unter https://docs.djangoproject.com/de/1.10/ref/contrib/sitemaps/#template-customization. – Selcuk

Antwort

0

In Einbau-Sitemaps Vorlage Sie haben <lastmod>{{ url.lastmod|date:"Y-m-d" }}</lastmod>

Sie müssen Vorlage außer Kraft zu setzen und das aktuelle Format ISO-Format, mehr Informationen hier zu beheben: https://docs.djangoproject.com/en/2.0/ref/contrib/sitemaps/#template-customization

from django.contrib.sitemaps import views 

urlpatterns = [ 
    path('custom-sitemap.xml', views.index, { 
     'sitemaps': sitemaps, 
     'template_name': 'custom_sitemap.html' 
    }), 
    path('custom-sitemap-<section>.xml', views.sitemap, { 
     'sitemaps': sitemaps, 
     'template_name': 'custom_sitemap.html' 
    }, name='django.contrib.sitemaps.views.sitemap'), 
] 

Die schnelle Verbindung zu allen Format-Codes hier: https://docs.djangoproject.com/en/2.0/ref/templates/builtins/#date

Verwandte Themen