Python Django:更改URL';当前语言上的s关键字参数
我有两个关键字参数Python Django:更改URL';当前语言上的s关键字参数,python,django,django-urls,Python,Django,Django Urls,我有两个关键字参数 sitemap_en = { "blog_en":BlogSiteMap('en'), ... } sitemap_ja = { "blog_ja":BlogSiteMap('ja'), ... } 我想在url.py中有这个条件 if current_language == "en": sitemaps = sitemap_en else: sitemaps = sitemap_ja url(r'^sitemap
sitemap_en = {
"blog_en":BlogSiteMap('en'),
...
}
sitemap_ja = {
"blog_ja":BlogSiteMap('ja'),
...
}
我想在url.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以使用此视图:
url(r'^sitemap.xml/$', 'views.locale_sitemaps', name='sitemap')
我正在使用django localeurl,但它在sitemapI中显示了无效的url。请看,为什么不为每个语言生成一个url?是的,我有这个选项,但我希望在单个url中执行此操作!