Django CMS + Django评论= 404

时间:2012-10-26 12:26:08

标签: django django-cms

我是Django 1.4.2的初级用户。我玩了好几个星期,但我一直陷入困境:如果我去预先设定的网址,那就是404 ...

URLS.PY:

from django.conf.urls.defaults import *
from django.contrib import admin
from django.conf import settings

admin.autodiscover()

urlpatterns = patterns('',
    (r'^admin/', include(admin.site.urls)),
    url(r'^', include('cms.urls')),
    (r'^comments/', include('django.contrib.comments.urls')),
)

if settings.DEBUG:
    urlpatterns = patterns('',
    url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
    url(r'', include('django.contrib.staticfiles.urls')),
) + urlpatterns    # Example:

我已经多次关注Django CMS和其他一些插件,但是当我想要预览网址时,我一直收到404错误。在这种情况下,我已成功安装Django评论,我能够创建评论(在后端),但如果我想在前端预览它们... 404。我的URLS.PY有什么问题吗?

example.com/en/comments -> 404

提前致谢。

2 个答案:

答案 0 :(得分:0)

简单问题:您是否在网址中看到en(?P<language>...)之类的内容?那么为什么你会期望除{404} /en/comments/以外的任何东西?

此外,在^$(root)处包含Django CMS网址基本上会将URL的所有处理传递到其urls.py,因此在此之后添加到urls.py的所有内容都会被忽略。如果你想要包含其他东西,它必须在urls.py中的之前,然后它会在你指定的urlpattern上提供,在这种情况下,只有/comments/,而不是{ {1}}。

答案 1 :(得分:0)

你有没有尝试过:

urlpatterns = patterns('',
    (r'^admin/', include(admin.site.urls)),
    (r'^comments/', include('django.contrib.comments.urls')),
    url(r'^', include('cms.urls')),
)

'example.com/comments/'应该有效。如果出现相同的错误,请确保在settings.py文件中将“django.contrib.comments”添加到INSTALLED_APPS。您还可以运行'manage.py syncdb',以便创建与'comments'应用相关的表。

'en /'来自哪里?它是您应用页面中的硬编码网址,还是由您手动插入?