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