【发布时间】:2023-02-12 13:31:23
【问题描述】:
请帮助我生成正确的站点地图。 我的 Django 2.2 多语言站点具有标准国际化框架。
带有 get_absolute_url 的 Model.py
class Data(models.Model):
...
def get_absolute_url(self):
from django.urls import reverse
return reverse("data_detail", kwargs={"slug": str(self.id)})
站点地图.py
class DataSitemap (Sitemap):
changefreq = "daily"
priority = 0.5
i18n = True
def items(self):
return Data.objects.all()
def location(self, obj):
return '/news/data/%s/' % (obj.pk)
网址.py
from django.contrib.sitemaps.views import sitemap
from .sitemaps import DataSitemap
sitemaps = {
'data' : DataSitemap
}
urlpatterns = i18n_patterns(
path("sitemap.xml", sitemap, {"sitemaps": sitemaps},
name='django.contrib.sitemaps.views'),
)
现在,当我生成 sitemap.xml 时,我没有语言前缀,
<url>
<loc>example.com/news/data/1/</loc>
<lastmod>2022-03-24</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>example.com/news/data/1/</loc>
<lastmod>2022-01-08</lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
对于没有 get_absolute_url 但没有硬编码位置的其他模型 - 一切正常,正确添加了语言前缀。
如何修复我的 Sitemap 代码?
【问题讨论】:
标签: python django url url-routing multilingual