如何将我的django应用程序中集成的cms.urls添加到sitemap.xml

时间:2017-10-06 15:22:57

标签: python django django-cms django-sitemaps

我的django项目中有这个。 在views.py

class MediatorViewSitemap(Sitemap):
    changefreq = 'monthly'
    priority = 0.8

    def items(self):
        return Mediator.objects.exclude(photo='')

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

    static_list =[
        'home',
        'mediators_list',
        'about',
        'faq',
        'pricing',
        'terms',
        'privacy',
        'contact',
    ]

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

    def items(self):
        return static_list

    def location(self, item):
        return reverse(item)

这是我的urls.py

sitemaps = {
    'mediators': MediatorViewSitemap,
    'static': StaticViewSitemap
}

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

它生成的sitemap.xml

非常好

现在我已将djangocms集成到我的django项目中,所以我在同一个urls.py中有这个网址:

url(r'^blog/', include('cms.urls')),

我想要的是将它添加到同一个sitemap.xml,任何教程的任何建议或任何人的帮助?

1 个答案:

答案 0 :(得分:0)

导入CMSSitemap,如from cms.sitemaps import CMSSitemap,然后将其与您的Sitemap类混合;

sitemaps = {
    'mediators': MediatorViewSitemap,
    'static': StaticViewSitemap,
    'cmspages': CMSSitemap
}

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

有一个软件包可以从CMS核心开发团队中扩展站点地图,这可能对您有用; https://github.com/nephila/djangocms-page-sitemap/