我有这两个关键字参数
sitemap_en = {
"blog_en":BlogSiteMap('en'),
...
}
sitemap_ja = {
"blog_ja":BlogSiteMap('ja'),
...
}
我想在 urls.py 中有这个条件,
if current_language == "en":
sitemaps = sitemap_en
else:
sitemaps = sitemap_ja
url(r'^sitemap.xml/$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}, name='sitemap')
我知道 else 是否不会被执行,但我想在我的 url 中包含它。所以有人帮助我如何实现我的目标吗?
请您参考如下方法:
在处理任何请求之前解析 URL。
一个简单的解决方案是装饰django.contrib.sitemaps.views.sitemaps:
from django.contrib.sitemaps.views import sitemap
def locale_sitemaps(request):
# assuming you make a "sitemaps" dict here of {language_code: sitemap}
return sitemap(request, sitemaps=sitemaps[request.LANGUAGE_CODE])
然后,制作您的 URL 以使用此 View :
url(r'^sitemap.xml/$', 'views.locale_sitemaps', name='sitemap')
