Solving "ImproperlyConfigured: Passing a 3-tuple to include()..." error after Django/Wagtail 2.0 upgrade

Mar 01, 2018 · Updated: Jan 30, 2021 · by Tim Kamanin

So you've upgraded to a new and shiny Django 2.0 (or Wagtail 2.0), start your server and boom, you got slapped by this 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.

Most probably, you have a problem in your main urls.py file:

url(r'^admin/', include(admin.site.urls)),

Do you see admin.site.urls wrapped by include(), this is what Django (Wagtail) isn't happy about. The solution is to register your Django admin route like this:

url(r'^admin/', admin.site.urls),

And now all should be fine. Let me know if it helps.

Hey, if you've found this useful, please share the post to help other folks find it:

There's even more:

Subscribe for updates

  • via Twitter: @timonweb
  • old school RSS:
  • or evergreen email ↓ ↓ ↓