Make組ブログ

Python、Webアプリや製品・サービス開発についてhirokikyが書きます。

django-cms で言語別のページを用意しない方法

django-cms で言語別のページを用意しない方法。

django-cmsチュートリアル (3. Introductory Tutorial — django cms 2.3 documentation) どおりに導入すると、例えば /tempura というURLに

と言語別のURLが用意されてしまう。
(/tempura は英語で書いているよう設定している)

サイトが単一の言語しか想定してない場合、複数URLを用意してやる必要は無いので消したい。

環境

解法

上記URLのチュートリアルでは、最初から複数言語に対応できるように設定されているので、それを消してやれば良い。
設定ファイル (settings.py) の MIDDLEWARE_CLASSES から1行消してやれば良い。

MIDDLEWARE_CLASSES = (
    ...
    'cms.middleware.multilingual.MultilingualURLMiddleware',
    ...
)

これでさっきの例だと

のみ有効なURLとなる。

参考: http://django-cms.readthedocs.org/en/latest/advanced/i18n.html#multilingual-url-middleware