Tengo una advertencia de obsolescencia en 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))En Django 2.0 esto da el 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. ¿Cómo debo cambiar url(r'^admin/', include(admin.site.urls)) ? Intenté mirar la documentación, pero no tengo ni idea...
Aquí está mi 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')), ]A partir de Django 1.9, la forma antigua de incluir las direcciones URL de administración está en desuso . Debe pasar admin.site.urls directamente a url() , sin la llamada a include() :
from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), ... ]Luché con esto en mi Macbook. Tenía un entorno virtual activado con Django 2.0 instalado. Pero django-admin todavía apuntaba a una instalación de nivel de sistema desde una versión anterior de django. Mi solución fue desinstalar el nivel del sistema Django. Después de eso, django-admin apuntaba a la versión más nueva de virtualenv.