Django错误:您的网址格式无效。确保urlpatterns是url()实例的列表

时间:2016-08-05 09:59:02

标签: python django django-1.10

升级到Django 1.10后,运行python manage.py runserver时出现以下错误:

?: (urls.E004) Your URL pattern ('^$', 'myapp.views.home') is invalid. Ensure that urlpatterns is a list of url() instances.
HINT: Try using url() instead of a tuple.

我的urlpatterns如下:

from myapp.views import home

urlpatterns = [
    (r'^$', home, name='home'),
]

2 个答案:

答案 0 :(得分:13)

为了简化URL配置,在Django 1.8中弃用了patterns(),在1.10(release notes)中删除了urlpatterns。在Django 1.10中,url()必须是patterns()个实例的列表。不再支持在urlpatterns = [ (r'^$', home, name='home'), # tuple ] 中使用元组,Django检查框架将引发错误。

修复此问题很简单,只需转换任何元组

即可
url()

urlpatterns = [ url(r'^$', home, name='home'), # url instance ] 个实例:

NameError

如果您获得以下NameError: name 'url' is not defined

urls.py

然后将以下导入添加到您的from django.conf.urls import url

'myapp.views.home'

如果您在网址模式中使用字符串,例如urlpatterns,您必须更新这些以同时使用可调用对象。有关详细信息,请参阅this answer

有关[^\/]*\.py$

的详情,请参阅Django URL dispatcher docs

答案 1 :(得分:0)

检查您是否使用过这样的网址格式:

urlpatterns += (
    (r'^404/$', page_not_found_view),
)

将其更改为:

urlpatterns += [
    url(r'^404/$', page_not_found_view),
]