Django 弃用警告或配置不当错误 - 不支持将 3 元组传递给 django.conf.urls.include()

新手上路,请多包涵

我在 Django 1.11 中有一个弃用警告:

 RemovedInDjango20Warning: Passing a 3-tuple to django.conf.urls.include() is deprecated. Pass a 2-tuple containing the list of patterns and app_name, and provide the namespace argument to include() instead.
  url(r'^admin/', include(admin.site.urls))

在 Django 2.0 中,这给出了错误:

 django.core.exceptions.ImproperlyConfigured: Passing a 3-tuple to include() is not supported.
Pass a 2-tuple containing the list of patterns and app_name, and provide the namespace argument to include() instead.

我应该如何更改 url(r'^admin/', include(admin.site.urls)) ?我试图查看文档,但我不知道……

这是我的 urls.py:

 from django.conf.urls import include, url
from django.contrib import admin
admin.autodiscover()

urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^admin/django-ses/', include('django_ses.urls')),
    url(r'^api/1.0/', include('feedcrunch_api_v1.urls')),
    url(r'^oauth/', include('oauth.urls')),
    url(r'^@(?P<feedname>\w+)/admin/', include('feedcrunch_rssadmin.urls')),
    url(r'^@(?P<feedname>\w+)/', include('feedcrunch_rssviewer.urls')),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
    url(r'', include('feedcrunch_home.urls')),
]

原文由 Jonathan DEKHTIAR 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 960
2 个回答

从 Django 1.9 开始, 包含管理 url 的旧方法已弃用。您应该将 admin.site.urls 直接传递给 url() ,而不调用 include()

 from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    ...
]

原文由 Alasdair 发布,翻译遵循 CC BY-SA 4.0 许可协议

我在我的 Macbook 上遇到了这个问题。我有一个安装了 Django 2.0 的虚拟环境。但是 django-admin 仍然指向旧版本 django 的系统级安装。我的解决方案是卸载系统级别的 django。之后, django-admin 指向较新的 virtualenv 版本。

原文由 2achary 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题