Как создать карту сайта для многоязычного сайта на Django - PullRequest
0 голосов
/ 26 сентября 2019

Извините, но мне нужна помощь.У меня есть 2 языка на сайте (Великобритания, Великобритания) Как я могу сделать два отдельных сайта для сайта?Что у них есть префикс в URL, и каждый из них содержит только URL, который относится только к выбранному языку.Например, для двух маршрутов: /uk/sitemap.xml /en/sitemap.xml

Я пытаюсь это сделать:

from django.contrib.sitemaps import Sitemap
from beerpost.models import Beerpost
from django.urls import reverse

class BeerpostSitemap(Sitemap):
    i18n = True
    priority = 0.5
    changefreq = 'daily'

    def items(self):
        return Beerpost.objects.filter(is_active=True)

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

Но у меня есть 1 карта сайта, в которую включены все ссылки на двух языках.После того, как я попытался удалить

i18n = True

и в url.py добавил

from django.conf.urls.i18n import i18n_patterns
urlpatterns += i18n_patterns(
  path('sitemap.xml', sitemap, {'sitemaps': sitemaps},name='django.contrib.sitemaps.views.sitemap'),
)

После того, как я получил то, что я хочу: отдельные маршруты в моих файлах сайта, но эти маршруты не включают префикс (en или ua) как я могу добавить его туда?У меня есть это: /uk/sitemap.xml

<url>
<loc>
https://rate-beer.info/lvivske-lvivske-svitle-rozlivne/8831
</loc>
<lastmod>2019-09-19</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>

/ en / sitemap.xml

<url>
<loc>
https://rate-beer.info/lvivske-lvivske-light-draft-beer/8831
</loc>
<lastmod>2019-09-19</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>

Как я могу получить это с "/ en /"?/en/sitemap.xml

<url>
<loc>
https://rate-beer.info/en/lvivske-lvivske-light-draft-beer/8831
</loc>
<lastmod>2019-09-19</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
...