如何使用Django分割站点地图(以编程方式)?

时间:2015-08-03 13:19:35

标签: python django sitemap

虽然Google站点地图限制为5万个网址,但我想将我的站点地图拆分为500个网址。

这是博客站点地图,

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

网址配置

from blog.sitemaps import BlogSitemap


sitemaps = {
    'blog': BlogSitemap
}

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

数据库模型有超过500个对象,如何拆分站点地图,以便即使有5000个对象也可以自动访问sitemap1.xml,sitemap2.xml等?

感谢。

PS。我想要一个程序化的解决方案。

PPS。它可以在没有过滤器的情况下检索对象。可以使用主键(1-500),(500-1000)等等,谢谢

1 个答案:

答案 0 :(得分:0)

使用sitemap limit

from django.contrib.sitemaps import Sitemap

class LimitSitemap(Sitemap):
    limit = 500

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