我在Django项目中使用了wagtail app。是否可以使用wagtail sitemaps(wagtail.contrib.wagtailsitemaps)加入django站点地图(https://docs.djangoproject.com/en/1.11/ref/contrib/sitemaps/)?尝试使用django站点地图索引,但它只划分django站点地图,我怎么能包含wagtail站点地图?
答案 0 :(得分:4)
Wagtail从版本1.10开始使用Django站点地图框架。这应该允许您轻松地将常规Django站点地图与Wagtail站点地图结合起来。
然而,有一小部分;因为wagtail支持多个站点,站点地图应该知道站点地图生成的站点。因此,wagtail提供了自己的站点地图视图(索引和站点地图)。这些视图扩展了Django站点地图视图,以便传播站点对象。
所以不要从django导入站点地图视图:
from django.contrib.sitemaps import views as sitemap_views
使用wagtail版本:
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'),
# ...
]
有关完整示例,您可以在测试中看到代码: