1

Django-CMS アプリケーションで公開したすべてのページのリストを取得したいのですが、言語固有の URL をレンダリングするために取得できないようです。

私の設定で私が指定した:

LANGUAGES = [
    ('sv', 'Svenska'),
    ('en', 'English'),
]

管理サイトにアクセスし、連絡先ページ (サイト ホームではない) を作成し、たとえば、'contact-sv' と 'contact-en' など、さまざまな言語にさまざまなスラッグを設定します。

次に、ページを取得するビューがあります

from cms.models import Page
page = Page.objects.published()[1]
print 'swe:', page.get_absolute_url(language='sv')
print 'eng:', page.get_absolute_url(language='en')

次に、次の出力を取得します。

swe: /contact-en/
eng: /contact-en/

swe-url が /sv/contact-sv/ であると予想したとき

パスに言語プレフィックスは必要ありません。それをパスに追加できますが、言語固有のパスが必要です。

4

3 に答える 3

2

Django の組み込み i18n_urlpatterns を使用してこれを処理する 2.4 リリースを待つよりも良い解決策はありません。これにより、問題が修正されるはずです。今のところ、あなたの答えが唯一の方法です。

于 2012-11-13T14:23:23.177 に答える
0

もっと良い方法があると思いますが、今はページ オブジェクトのタイトルをループしています。

for title in page.title_set.all():
    print title.language, title.slug

それは機能しますが、私はそれが好きではありません...

于 2012-11-10T00:39:08.917 に答える