我有以下问题:
我制作了一个小 django (1.7.8) 项目(名为 djangocmstest)来测试 django-cms (但它可能与 django 有关,我不确定这一点)。
我尝试访问 localhost:8000/one 并遇到以下问题:
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/one/
Using the URLconf defined in djangocmstest.urls, Django tried these URL patterns, in this order:
^en/
^media\/(?P<path>.*)$
The current URL, one/, didn't match any of these.
我制作了以下文件:
djangocmstest/urls.py:
我按照建议添加了 url(r'^/', include('cms.urls')),
here .
from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.conf import settings
from django.conf.urls.i18n import i18n_patterns
from django.conf.urls.static import static
urlpatterns = i18n_patterns('',
url(r'^admin/', include(admin.site.urls)),
# Please note that I'm not sure how to handle
# the order of the two following lines.
url(r'^/', include('main.urls')),
url(r'^/', include('cms.urls')),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
main/urls.py:
from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = patterns('main.views',
url(r'^one/$', 'template_one'),
)
由于某种原因,main/urls.py文件内容似乎没有包含在djangocmstest/urls.py中。
我该如何解决这个问题?
编辑: 在浏览器中使用正确的 URL(按照 @catavaran 的建议)(“.../en/one”),我得到以下内容:
Page not found (404)
Request Method: GET
Request URL: http://127.0.0.1:8000/en/one
Using the URLconf defined in djangocmstest.urls, Django tried these URL patterns, in this order:
^en/ ^admin/
^en/ ^/
^en/ ^/
^media\/(?P<path>.*)$
The current URL, en/one, didn't match any of these.
编辑 2(已修复): 我现在有了这些文件(并且它可以工作:)):
main/urls.py:
from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = patterns('main.views',
url(r'^one/$', 'template_one'),
)
djangocmstest/urls.py:
from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.conf import settings
from django.conf.urls.i18n import i18n_patterns
from django.conf.urls.static import static
urlpatterns = i18n_patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^', include('main.urls')),
url(r'^', include('cms.urls')),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
最佳答案
在项目的 urls.py
中,您使用 i18n_patterns
而不是简单的 patterns
,因此页面的 url 应该是:
/en/one/
更新:从项目 urls.py
的正则表达式中删除尾部斜杠。因此正则表达式应该是 r'^'
而不是 r'^/'
:
urlpatterns = i18n_patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^', include('main.urls')),
url(r'^', include('cms.urls')),
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
关于python - django : 404 (main. url 未包含在 myproject/urls.py 中?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30157231/