python - Django 错误 : Your URL pattern is invalid. 确保 urlpatterns 是 url() 实例的列表

标签 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'),
]

最佳答案

为了简化 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/

相关文章:

python/mongoengine 将关键字参数作为变量传递

在循环中使用模拟库进行用户输入的 Python 测试

python - Pandas ;将 MM :SS, 小数列转换为秒数

python - 无法在 django 中为 forms.ChoiceField 设置初始值

python - Django - 将音轨添加到页面

python - PyGTK“断言 GTK_IS_WINDOW 失败

python - 如何使用 DjangoORM 在 PostgreSQL 9.6 中使用 StringAgg 聚合函数

python - Django 类型错误 : authenticate() takes exactly 0 arguments (3 given)

django - 异常值 : column home_profile. 目标不存在

python - 当前的 URL,app/,与这些中的任何一个都不匹配