我是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
提前致谢。
答案 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 /'来自哪里?它是您应用页面中的硬编码网址,还是由您手动插入?