2016-10-19 4 views
0

Моя карта сайта генерируется следующим образом:Как форматировать django сгенерированную карту сайта 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() 

как Джанго DOCS says, LASTMOD возвращает DateTime. Он оказывает sitemap.xml LastMod в формате 'гггг-мм-дд' и выглядит так:

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

Но как я мог бы изменить LASTMOD формат ISO8601 (мне это нужно: 2008-01-02T10: 30: 00+ 2:00), чтобы получить это:

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

Я играл делая путь заказных форматов ", как сказал here (локализации формата Джанго), но не нашел, какие настройки я должен изменить, чтобы получить соответствующий формат дату. Спасибо.

Мой urls.py:

... 

sitemaps = { 
    'static': StaticViewSitemap 
} 

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

Как вы создаете карту своего сайта? Отправьте свои url.py и любые пользовательские шаблоны sitemap (если есть). – Selcuk

+0

Я добавил обновление. – mikhaylenko

+0

Вы должны написать собственный шаблон, использовать соответствующий формат даты и времени и включить этот шаблон в свой 'urls.py'. Подробнее см. Https://docs.djangoproject.com/en/1.10/ref/contrib/sitemaps/#template-customization. – Selcuk

ответ

0

В встроенный Sitemaps шаблон у вас есть <lastmod>{{ url.lastmod|date:"Y-m-d" }}</lastmod>

Вы должны переопределить шаблон и фиксации текущего формата в ISO-формате, больше информации здесь: 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'), 
] 

быстрая ссылка на все коды формата здесь: https://docs.djangoproject.com/en/2.0/ref/templates/builtins/#date

 Смежные вопросы

  • Нет связанных вопросов^_^