@KirillTrueno

Как в Django объединить несколько sitemap index в один?

У меня в 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>
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы