Django包括网址不起作用

时间:2016-06-27 09:00:20

标签: python django

无法弄清楚为什么包含的网址无效。项目有1我的应用程序。所以在myproject / mysite / urls.py中我有:

glyphicon

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

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

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

编辑:项目树:

from django.conf.urls import patterns, url

from .views import subscribe

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

2 个答案:

答案 0 :(得分:1)

  

如果我尝试localhost:8000 / sub / subscribe,它会使用/ lt /

附加url

多数民众赞成是因为你的网址格式需要一个你没有提供的斜杠

CommonMiddleware

通常这不会有问题,因为djangos APPEND_SLASH可以帮助你(如果你使用的是ID Customer Product Estimate Sales -------------------------------------------- 1 A 303 100 20 2 A 425 20 30 3 C 1145 500 250 4 F 801 25 0 )但似乎django-cms有一个全能重定向应用于您的应用程序重定向到区域设置。

答案 1 :(得分:1)

调用patterns()函数时出错:

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

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

由于不推荐patterns(),最好切换到新式url配置,并使用列表:

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

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