django:404(main.urls不包含在myproject / urls.py中吗?) [英] django : 404 (main.urls not included in myproject/urls.py?)

查看:82
本文介绍了django:404(main.urls不包含在myproject / urls.py中吗?)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下问题:



我做了一个django(1.7.8)小项目(名为 djangocmstest )来测试 django-cms (但它可能与django有关,我不确定。)



我尝试访问 localhost:8000 / one 并遇到以下问题:

 找不到页面(404)
请求方法:GET
请求URL:http: //127.0.0.1:8000/one/

使用djangocmstest.urls中定义的URLconf,Django按以下顺序尝试了以下URL模式:

^ en /
^ media\ /(?P< path>。*)$

当前URL one /与任何这些都不匹配。

我制作了以下文件:



djangocmstest / urls.py:



我添加了 url(r'^ /',include('cms .urls')),,如此处

 来自django.conf.urls导入模式,包括url $ b从django.contrib导入$ b从django.conf导入管理
从django.conf.urls.i18n导入
从django.conf.urls.i18n导入i18n_patterns从django.conf.urls.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,做cument_root = settings.MEDIA_ROOT)

main / urls.py:

 从django.conf.urls导入模式,包括url 
从django.conf.urls.static导入静态$ b来自django.conf的$ b导入设置

urlpatterns = pattern('main.views',
url(r'^ one / $','template_one'),

由于某些原因, main / urls.py 文件内容不存在似乎被包含在 djangocmstest / urls.py 中。



我该如何解决?



编辑:
在浏览器中使用正确的URL(由@catavaran建议)( ... / en / one),我得到以下信息:

 找不到页面(404)
请求方法:GET
请求URL:http://127.0.0.1 :8000 / en / one

使用djangocmstest.urls中定义的URLconf,Django按以下顺序尝试了以下URL模式:

^ en / ^ admin /
^ en / ^ /
^ en / ^ /
^ media\ /(?P&path;。*)$

当前URL(en / one)与以下任何一个都不匹配这些。

编辑2(固定):
我现在有这些文件(并且有效:)):



main / urls.py:



<来自django.conf.urls的pre> 导入模式,包括来自django.conf.urls.static的url
来自django.conf导入设置的静态
导入设置

urlpatterns =模式('main.views',
url(r'^ one / $','template_one'),

djangocmstest / urls.py:

 <从django.conf.urls导入code>,包括从django.contrib导入url 
从django.conf导入admin
从django.conf.urls.i18n导入设置
来自django.conf.urls.static的i18n_patterns
静态导入静态

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 ,因此您网页的网址应为:

  / en / one / 

更新:从项目 urls.py <中的正则表达式中删除斜杠。 / code>。因此,正则表达式应为 r'^',而不是 r'^ /'

  urlpatterns = i18n_patterns('',
url(r'^ admin /',include(admin.site.urls)),
url(r'^',include('main.urls')),
url(r'^',include('cms.urls')),
)+静态(settings.MEDIA_URL ,document_root = settings.MEDIA_ROOT)


I have the following problem :

I've made a little django (1.7.8) project (named djangocmstest) to test django-cms (but it could be related with just django, I'm not sure about this).

I try to access localhost:8000/one and get the following issue :

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.

I've made the following files :

djangocmstest/urls.py :

I added url(r'^/', include('cms.urls')), as suggested 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'),
)

For some reason, the main/urls.py file content doesn't seem to be included into djangocmstest/urls.py.

How could I fix this?

EDIT : With the correct URL (as suggested by @catavaran ) in the browser (".../en/one") I get the following :

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.

EDIT 2 (FIXED) : I now have these files (and it works :) ) :

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)

解决方案

In the project's urls.py you use the i18n_patterns instead of simple patterns so url for your page should be:

/en/one/

UPDATE: Remove the trailing slashes from the regexes in the project's urls.py. So regex should be r'^' but not the 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)

这篇关于django:404(main.urls不包含在myproject / urls.py中吗?)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆