/ / Django url dispatcher utilizza le stringhe per specificare la funzione, perché? - django, django-views, django-urls

Django url dispatcher usa le stringhe per specificare la funzione, perché? - Django, django-views, django-urls

La documentazione di Django mostra esempi come questo:

from django.conf.urls import url

from . import views

urlpatterns = [
url(r"^articles/2003/$", views.special_case_2003),

]

Tuttavia, ho visto un codice simile al seguente:

from django.conf.urls import url

urlpatterns = [
url(r"^articles/2003/$", "myapp.views.special_case_2003"),

]

Dove special_case_2003 è il nome di una funzione in myapp/views.py. Qual è la differenza tra questi due approcci?

risposte:

2 per risposta № 1
urlpatterns = [
url(r"^articles/2003/$", "myapp.views.special_case_2003"),
]

Codice come questo non è aggiornato. Fornire la vista come una stringa come questa è deprecato in Django 1.8, e non funziona in Django 1.10+. In Django 1.10+, è necessario utilizzare il callable.