升级到 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'),
]
最佳答案
为了简化 URL 配置,patterns()
在 Django 1.8 中被弃用,并在 1.10 中被移除(release notes)。在 Django 1.10 中,urlpatterns
必须是 url()
实例的列表。不再支持在 patterns()
中使用元组,Django 检查框架将引发错误。
解决这个问题很简单,只需转换任何元组
urlpatterns = [
(r'^$', home, name='home'), # tuple
]
到 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'
,您必须更新这些才能同时使用可调用对象。参见 this answer了解更多信息。
参见 Django URL dispatcher docs有关 urlpatterns
的更多信息。
关于python - Django 错误 : Your URL pattern is invalid. 确保 urlpatterns 是 url() 实例的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38786461/