5

升级到 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'),
]
4

2 回答 2

14

为了简化 URL 配置,patterns()在 Django 1.8 中已弃用,并在 1.10(发行说明)中删除。在 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

如果您在 url 模式中使用字符串,例如'myapp.views.home',您将必须更新这些以同时使用可调用对象。有关更多信息,请参阅此答案

有关. _ _urlpatterns

于 2016-08-05T09:59:01.913 回答
0

检查您是否使用过这样的 URL 模式:

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

将其更改为:

urlpatterns += [
    url(r'^404/$', page_not_found_view),
]
于 2017-08-25T04:59:27.530 回答