无法弄清楚为什么包含的网址不起作用。专案有1个我的应用程式。所以在myproject / mysite / urls.py中,我有:

urlpatterns = i18n_patterns('',
    url(r'^admin/', include(admin.site.urls)),
    ......
    url(r'^sub/', include('subscription.urls')),
    url(r'^', include('cms.urls')),
)


然后在myproject / subscription / urls.py中:

from django.conf.urls import patterns, url

from .views import subscribe

urlpatterns = patterns(
    url(r'^subscribe/', subscribe),
)


如果我尝试转到http://localhost:8000/lt/sub/subscribe/,它将显示404页(找不到页面)。可能是什么问题?

编辑:项目树:

myproject/
    manage.py
    media/
    static/
    subscription/
        templates/
        __init__.py
        admin.py
        forms.py
        models.py
        urls.py
        views.py
    mysite/
        locale/
        static/
        templates/
        __init__.py
        settings.py
        urls.py
        wsgi.py

最佳答案

调用patterns()函数时出错:

urlpatterns = patterns(
    url(r'^subscribe/', subscribe),
)


patterns()接受视图前缀作为第一个参数,如果您传递url()实例,则不会将其用作url模式。如果您还有其他网址格式,则会给您一个错误,但是在这种情况下,patterns()只会返回一个空列表。

由于不建议使用patterns(),因此最好切换到新样式的url配置,并使用一个列表:

urlpatterns = [
    url(r'^subscribe/', subscribe),
]


否则,您必须将前缀作为第一个参数传递。由于实际上并没有使用前缀(您通过视图函数,而不是将导入位置作为字符串),因此通常为空字符串''

10-07 15:16