我安装了 Django 1.5.1 和 django-cms 2.4.2
但是我还没有集成百日草博客和 django-cms。
我能够创建一个博客条目,但是在访问博客条目时
8000/en/weblog/2013/10/13/test-entry/
我收到一个 404 Page not Found
有什么想法吗?
我安装了 Django 1.5.1 和 django-cms 2.4.2
但是我还没有集成百日草博客和 django-cms。
我能够创建一个博客条目,但是在访问博客条目时
8000/en/weblog/2013/10/13/test-entry/
我收到一个 404 Page not Found
有什么想法吗?
可能的原因: urls.py 中包含的 urlpatterns 的顺序。Django-Cms 设计不足。
修复:将 cms.urls 放在 zinnia.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 "slug" 模式匹配广泛的 URL,包括 Zinnia 博客条目 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”变量中,并作为参数(在“kwargs”中)提供给 cms.views.detail 视图函数。这个视图将调用:
cms.utils.page_resolver import get_page_from_request(request, use_path=slug)
并且 cms 将找不到(并会引发“Resolver404”异常)任何合适的页面来呈现,因为此 URI 属于 Zinnia 博客。
故事结局。
资源: