Предупреждение о недополнении 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')),
]
Ответы
Ответ 1
Начиная с Django 1.9, старый способ включения URL-адресов администратора устарел. Вы должны передать admin.site.urls
непосредственно в url()
, без вызова include()
:
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
...
]
Ответ 2
Я боролся с этим на моем MacBook. У меня была активирована виртуальная среда с установленным Django 2.0. Но django-admin
все еще указывал на установку на системном уровне из старой версии django. Моим решением было удалить системный уровень django. После этого django-admin
указывал на более новую версию virtualenv.