TypeError: Die Ansicht muss ein Callable oder eine Liste/ein Tupel im Fall von include() sein
Dieser Fehler tritt auf, wenn Ansichten vorhanden sind nach dem Upgrade auf Django 1.10 als Zeichenfolgen in URL-Mustern angegeben. Django 1.10 erfordert, dass Ansichten als aufrufbar angegeben werden.
Lösung:
Um diesen Fehler zu beheben, aktualisieren Sie Ihre urls.py, um die aufrufbare Ansicht einzuschließen.
Einzelansicht-Import:
Importieren Sie die einzelne Ansicht in Ihre urls.py und geben Sie sie als Funktionsreferenz an:
<code class="python">from django.conf.urls import include, url from myapp.views import home, contact urlpatterns = [ url(r'^$', home, name='home'), url(r'^contact/$', contact, name='contact'), ]</code>
Mehrfachansicht-Import :
Um den Import jeder Ansicht einzeln zu vermeiden, können Sie das gesamte Ansichtsmodul aus Ihrer App importieren:
<code class="python">from django.conf.urls import include, url from myapp import views as myapp_views urlpatterns = [ url(r'^$', myapp_views.home, name='home'), url(r'^contact/$', myapp_views.contact, name='contact'), ]</code>
Verwenden Sie das Schlüsselwort „as“:
Um Namenskonflikte beim Importieren mehrerer Ansichtsmodule aus verschiedenen Apps zu vermeiden, verwenden Sie das Schlüsselwort „as“:
<code class="python">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'), ]</code>
Das obige ist der detaillierte Inhalt vonWie behebt man „TypeError: view must be a callable' in Django 1.10?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!