2015-08-03 2 views
0

Хотя ограничение на карту сайта Google составляет 50 тыс. URL-адресов, я хочу разбить мой файл Sitemap на 500 URL-адресов.Как разделить файлы Sitemap с Django (программно)?

Это Блог Карта сайта,

from django.contrib.sitemaps import Sitemap 
from blog.models import Entry 

class BlogSitemap(Sitemap): 
    changefreq = "never" 
    priority = 0.5 

    def items(self): 
     return Entry.objects.all()[:500] 


    def lastmod(self, obj): 
     return obj.pub_date 

URL-адрес конфигурации

from blog.sitemaps import BlogSitemap 


sitemaps = { 
    'blog': BlogSitemap 
} 

и

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

Модель базы данных имеет более чем 500 объектов, как я разделить карты сайта так что к нему можно получить файл sitemap1.xml, sitemap2.xml и т. д. автоматически, даже если есть 5000 объектов?

спасибо.

пс. Я хочу программное решение.

pps. Его хорошо извлекать объекты без фильтров. Можно использовать первичные ключи (1-500), (500-1000) и т.д. благодаря

+1

Я считаю, что если вы установите 'limit' атрибут в вашем классе карта сайта, Джанго будет автоматически разбиваться ваш файл Sitemap. – Brobin

ответ

0

Использование sitemap limit:

from django.contrib.sitemaps import Sitemap 

class LimitSitemap(Sitemap): 
    limit = 500 

class BlogSitemap(LimitSitemap): 
    def items(self): 
     return Entry.objects.all()