2012-03-15 16 views
2

に変更URLのキーワード引数I持って、他ではありません場合ジャンゴ:現在の言語

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') 

は、私が知っているこの二つのキーワード引数実行したが、私はこれを私のURLに入れたい。だから誰も私の目標を達成する方法を助けますか?

答えて

3

URLは、要求が処理される前に解析されます。このビューを使用するようにURLを行い、その後

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]) 

簡単な解決策はdjango.contrib.sitemaps.views.sitemapsを飾るにある

url(r'^sitemap.xml/$', 'views.locale_sitemaps', name='sitemap') 
+0

私はdjango-使用していますlocaleurlしかし、それはサイトマップ内の無効なURLを示しています – Ahsan

+0

私は、なぜlangごとに1つのURLを生成しないのを見ますか? – jpic

+0

はい、私はこのオプションを持っていますが、私は単一のURLでやろうとしています! – Ahsan

関連する問題