Django sitemap框架中的“alternates”是如何工作的?

nhhxz33t  于 2023-06-25  发布在  Go
关注(0)|答案(1)|浏览(117)

我正在努力让“alternates”属性在Django sitemap框架中工作。

class StaticViewSitemap(sitemaps.Sitemap):
    priority = 0.5
    changefreq = 'daily'
    i18n = True
    alternates = True

    def items(self):
        return ['index', 'about']

    def location(self, item):
        return reverse(item)

文件似乎表明上述情况,即设置i18n并将其替换为True。但是当我这样做时,我的sitemap实际上是一个像这样的普通测试字符串:

http://127.0.0.1:8000/en/daily0.5http://127.0.0.1:8000/en/about/daily0.5http://127.0.0.1:8000/es/daily0.5http://127.0.0.1:8000/es/about/daily0.5

它应该看起来像这样:

<urlset xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9" xmlns: xhtml = "http://www.w3.org/1999/xhtml" >
    <url >
        <loc > http: // 127.0.0.1: 8000/</loc >
        <changefreq > daily < /changefreq >
        <priority > 0.5 < /priority >
    </url >
    <url >
        <loc > http: // 127.0.0.1: 8000/about/</loc >
        <changefreq > daily < /changefreq >
        <priority > 0.5 < /priority >
    </url >
</urlset >

有两个问题:
1.它没有正确的格式。我做错了什么?
1.我不希望默认语言的语言前缀为'en'。我该如何删除这个?

qjp7pelc

qjp7pelc1#

要禁用网站默认语言的语言前缀,您必须在www.example.com文件中添加'prefix_default_language=False'urls.py。

urlpatterns += i18n_patterns(
    path('', include('polls.urls')),
........
    prefix_default_language=False,
    )

另外,请确保在项目的www.example.com文件中添加LANGUAGE_CODE = 'en'或网站的默认语言代码settings.py。

相关问题