Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django Deprecation Warning or ImproperlyConfigured error - Passing a 3-tuple to django.conf.urls.include() is not supported

Tags:

python

django

I have a deprecation warning in 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))

In Django 2.0 this gives the error:

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.

How should I change url(r'^admin/', include(admin.site.urls))? I tried to look at the documentation, but I have no clue ...

Here is my 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')),
]
like image 830
Jonathan DEKHTIAR Avatar asked Apr 10 '17 13:04

Jonathan DEKHTIAR


2 Answers

As of Django 1.9, the old way of including the admin urls is deprecated. You should pass admin.site.urls directly to url(), without the call to include():

from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    ...
]
like image 54
Alasdair Avatar answered Oct 22 '22 00:10

Alasdair


I struggled with this on my Macbook. I had a virtual environment activated with Django 2.0 installed. But django-admin was still pointing to a system level install from an old version of django. My solution was to uninstall the system level django. After that, django-admin was pointing to the newer virtualenv version.

like image 35
2achary Avatar answered Oct 22 '22 01:10

2achary