Heim  >  Artikel  >  Backend-Entwicklung  >  Wie behebt man „TypeError: view must be a callable“ in Django 1.10?

Wie behebt man „TypeError: view must be a callable“ in Django 1.10?

Linda Hamilton
Linda HamiltonOriginal
2024-10-22 08:06:17974Durchsuche

How to Fix

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn