Wagtail 从 1.10 版开始使用 Django 站点地图框架。这应该允许您轻松地将常规 Django 站点地图与 Wagtail 站点地图结合起来。
但是有一个小问题;因为 wagtail 支持多个站点,所以站点地图应该知道站点地图是为哪个站点生成的。出于这个原因,wagtail 提供了它自己的站点地图视图(索引和站点地图)。这些视图扩展了 Django 站点地图视图以传播站点对象。
所以不要从 django 导入站点地图视图:
from django.contrib.sitemaps import views as sitemap_views
使用鹡鸰版本:
from wagtail.contrib.wagtailsitemaps import views as sitemaps_views
然后使用 Django 方法将 url 映射到视图:
from wagtail.contrib.wagtailsitemaps import Sitemap
urlpatterns = [
# ...
url(r'^sitemap\.xml$', sitemaps_views.index, {
'sitemaps': {
'pages': Sitemap
},
'sitemap_url_name': 'sitemap',
}),
url(r'^sitemap-(?P<section>.+)\.xml$', sitemaps_views.sitemap,
name='sitemap'),
# ...
]
完整的例子你可以看测试中的代码:
https://github.com/wagtail/wagtail/blob/911009473bc51e30ff751fda0ea5d2fa1d2b450f/wagtail/tests/urls.py#L36