django django-urls django-1.9

Nuevo formato de url en Django 1.9



django-urls django-1.9 (2)

Recientemente actualicé mi proyecto Django a la versión 1.9.

Cuando intento ejecutar migrate , obtengo los siguientes dos errores:

  1. Support for string view arguments to url() is deprecated and will be removed in Django 1.10 (got app.views.about). Pass the callable instead.
  2. django.conf.urls.patterns() is deprecated and will be removed in Django 1.10. Update your urlpatterns to be a list of django.conf.urls.url() instances instead.

¿Podría alguien mostrarme la sintaxis adecuada de cómo hacer esto? Una breve muestra de mis urls.py está abajo:

urlpatterns = patterns('''', url(r''^about/$'', ''app.views.about'', name=''about''), ) urlpatterns += patterns(''accounts.views'', url(r''^signin/$'', ''auth_login'', name=''login''), )

¡Gracias!


Debes eliminar las comillas alrededor del nombre de las vistas. Así tu código será así.

urlpatterns = patterns('''', url(r''^about/$'', app.views.about, #without quote! name=''about''), )

Punto 2, usa listas, para que tu código se transforme en

urlpatterns = [ url(r''^about/$'', app.views.about, #without quote! name=''about''), ]


Importe sus vistas directamente, o sus módulos de vistas:

from apps.views import about from accounts import views as account_views

No utilice patterns , solo use una lista o tupla:

urlpatterns = [ url(r''^about/$'', about, name=''about''), ] urlpatterns += [ url(r''^signin/$'', account_views.auth_login, name=''login''), ]