python - django : 404 (main. url 未包含在 myproject/urls.py 中?)

标签 python django django-cms

我有以下问题:

我制作了一个小 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)

ma​​in/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'),
)

由于某种原因,ma​​in/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(已修复): 我现在有了这些文件(并且它可以工作:)):

ma​​in/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/

相关文章:

python - 在 Python 中复制二维数组的最快方法是什么?

python - 将 Django 表单字段更改为隐藏字段

python - 引用对象数据成员时使用变量

python - 在 Ubuntu 14.04 上安装 django-cms

python - 谷歌应用引擎 : Redirect to RequestHandler

python - 键未知时访问字典值的简洁方法

python - 如何grep一行中的多个单词?

python - 反向(): 'NoneType' object is not callable

django - Aldryn 形式的替代品(Django-CMS)

python - 将 django-cms 集成到现有项目中 - 错误 : TemplateDoesNotExist at/news/cms_wizard/create/