升级到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'),
]
答案 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$
。
答案 1 :(得分:0)
检查您是否使用过这样的网址格式:
urlpatterns += (
(r'^404/$', page_not_found_view),
)
将其更改为:
urlpatterns += [
url(r'^404/$', page_not_found_view),
]