Django 1.5.1 と django-cms 2.4.2 がインストールされています
ただし、まだ zinnia ブログと django-cms を統合していません。
ブログエントリを作成できたが、ブログエントリに移動すると
8000/en/weblog/2013/10/13/テストエントリー/
404 Page not Found が表示される
何かご意見は?
Django 1.5.1 と django-cms 2.4.2 がインストールされています
ただし、まだ zinnia ブログと django-cms を統合していません。
ブログエントリを作成できたが、ブログエントリに移動すると
8000/en/weblog/2013/10/13/テストエントリー/
404 Page not Found が表示される
何かご意見は?
考えられる原因: urls.py に含まれる urlpatterns の順序。Django-Cms の設計不足。
修正: zinnia.urls の後に cms.urls を配置します。
# patterns or i18n_patterns here.
urlpatterns = i18n_patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^blog/', include('zinnia.urls')),
url(r'^comments/', include('django.contrib.comments.urls')),
url(r'^', include('cms.urls')),
)
説明:
zinnia の URL の前に cms の URL を含めると、django-cms の「スラッグ」パターンは、Zinnia のブログ エントリの URL を含む幅広い URL と一致します。
<RegexURLPattern pages-details-by-slug ^(?P<slug>[0-9A-Za-z-_.//]+)/$>
例として、「blog/2014/01/20/test-article-about-something/」に一致します。
django-cms:pages-details-by-slug として一致した後、URI 全体が「slug」変数に格納され、cms.views.detail ビュー関数の引数として (「kwargs」で) 提供されます。そして、このビューは以下を呼び出します:
cms.utils.page_resolver import get_page_from_request(request, use_path=slug)
この URI は Zinnia ブログに属しているため、cms はレンダリングに適したページを見つけられません (「Resolver404」例外が発生します)。
話の終わり。
資力: