Django-URL-Muster: Den TypeError verstehen: Die Ansicht muss aufrufbar sein
Ab Django-Versionen 1.10 kann eine bestimmte Fehlermeldung auftreten, wenn Definieren von URL-Mustern: TypeError: Die Ansicht muss ein Callable oder eine Liste/ein Tupel im Fall von include() sein. Dieser Fehler tritt auf, wenn versucht wird, Ansichten als Zeichenfolgen in URL-Mustern anzugeben, eine Vorgehensweise, die in früheren Django-Versionen häufig verwendet wurde.
Lösung:
Um diesen Fehler zu beheben, ist dies der Fall Es ist erforderlich, Ihre urls.py zu aktualisieren, um die tatsächlich aufrufbare Ansicht einzuschließen. Dazu müssen Sie die Ansicht in Ihre urls.py-Datei importieren. Zum Beispiel:
from django.conf.urls import include, url from django.contrib.auth.views import login from myapp.views import home, contact urlpatterns = [ url(r'^$', home, name='home'), url(r'^contact/$', contact, name='contact'), url(r'^login/$', login, name='login'), ]
Alternative Lösung:
Wenn Sie eine große Anzahl von Ansichten haben, kann es umständlich werden, diese einzeln zu importieren. Ein alternativer Ansatz besteht darin, das Ansichtenmodul aus Ihrer App zu importieren:
from django.conf.urls import include, url from django.contrib.auth import views as auth_views from myapp import views as myapp_views urlpatterns = [ url(r'^$', myapp_views.home, name='home'), url(r'^contact/$', myapp_views.contact, name='contact'), url(r'^login/$', auth_views.login, name='login'), ]
Die Verwendung von Aliasen wie myapp_views und auth_views verhindert Kollisionen mit Ansichtsnamen, wenn Ansichten aus mehreren Apps importiert werden.
Zusätzlich Informationen:
Ausführlichere Informationen zu URL-Verteilungsmustern finden Sie in der offiziellen Django-URL-Dispatcher-Dokumentation:
[Django-URL-Dispatcher-Dokumente](https://docs.djangoproject. com/en/stable/topics/http/urls/)
Das obige ist der detaillierte Inhalt vonWie löst man den TypeError von Django: Die Ansicht muss in URL-Mustern aufrufbar sein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!