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

Question:

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')),
]
Asked By: Jonathan DEKHTIAR

||

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),
    ...
]
Answered By: 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.

Answered By: 2achary

It’s problem belongs to your global virtualenv.First step deactivate your virtualenv and delete your old django module.

1.Deactivate your virtualenv deactivate

2.Delete your old django module pip uninstall django

3.Activate yor virtualenv and install new django module

Happy Coding

Answered By: Muhammadalive
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.