У меня в django-проекте есть 2 приложения: blogapp и questionapp.
В каждом из них имеется свой sitemaps.py.
Как я могу сделать общий для всего проекта sitemap-index.xml (`example.com/sitemap-index.xml`), который в свою очередь будет ссылаться на `example.com/blog/sitemap-index.xml` и `example.com/questions/sitemap-index.xml`?
Сейчас код выглядит так:
app/core/urls.py
from django.urls import include, path
urlpatterns = [
path('blog/', include('blogapp.urls', namespace='blogapp')),
path(''questions/, include('questionapp.urls', namespace='questionapp')),
]
app/blogapp/urls.py
from django.contrib.sitemaps.views import index, sitemap
from django.urls import path
from .sitemaps import sitemaps
app_name = BlogappConfig.name
urlpatterns = [
path('sitemap.xml', index, {'sitemaps': sitemaps, 'sitemap_url_name': 'blogapp:sitemap-section'}, name='sitemap-index'),
path('sitemap-<section>.xml', sitemap, {'sitemaps': sitemaps}, name='sitemap-section'),
]
app/questionapp/urls.py
from django.contrib.sitemaps.views import index, sitemap
from django.urls import path
from .sitemaps import sitemaps
app_name = QuestionappConfig.name
urlpatterns = [
path('sitemap.xml', index, {'sitemaps': sitemaps, 'sitemap_url_name': 'questionapp:sitemap-section'}, name='sitemap-index'),
path('sitemap-<section>.xml', sitemap, {'sitemaps': sitemaps}, name='sitemap-section'),
]
а должно получиться что-то примерно такое:
app/core/urls.py
...
path('sitemap-index.xml', index, {'sitemaps': ..., 'sitemap_url_name': ,,,}),
...
]
example.com/sitemap-index.xml
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>http://example.com/blog/sitemap-index.xml</loc>
</sitemap>
<sitemap>
<loc>http://1example.com/questions/sitemap-index.xml</loc>
</sitemap>
</sitemapindex>