不支持向 Django.config.urls.include()传递3元组

我在 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')),
]
32407 次浏览

从 Django 1.9,不推荐使用包含管理 URL 的旧方法开始,你应该直接把 admin.site.urls传给 url(),而不需要调用 include():

from django.contrib import admin


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

我在我的苹果笔记本电脑上挣扎着。我在安装了 Django 2.0之后激活了一个虚拟环境。但是 django-admin仍然指向从旧版本 django 安装的系统级安装。我的解决方案是卸载系统级 django。之后,django-admin指向更新的 viralenv 版本。

这个问题属于您的 global viralenv。第一步是停用 viralenv 并删除旧的 django 模块。

1. 停用你的 Virtual alenv deactivate

2. 删除旧的 django 模块 pip uninstall django

3. 激活 yor viralenv 并安装新的 django 模块

编码愉快