Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:更改URL';当前语言上的s关键字参数_Python_Django_Django Urls - Fatal编程技术网

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中执行此操作!