Wie behebe ich den Fehler „TypeError: View Must Be Callable' in Django 1.10?

Barbara Streisand
Freigeben: 2024-10-22 08:00:03
Original
983 Leute haben es durchsucht

How to Resolve the

TypeError: View Must Be Callable in Django 1.10

Übersicht:

Beim Upgrade auf Django 1.10 können Benutzer auf Folgendes stoßen: ein Fehler, der besagt: „Ansicht muss eine aufrufbare Ansicht oder eine Liste/ein Tupel im Fall von include() sein.“ Dieser Fehler tritt aufgrund von Änderungen in der Art und Weise auf, wie Django Ansichtsspezifikationen in URL-Mustern verarbeitet.

Ursache:

Ab Django 1.10 werden Ansichten als Zeichenfolgen angegeben ('myapp.views .home‘) wird nicht mehr unterstützt. Django erfordert jetzt, dass View Callables explizit importiert und in URL-Muster einbezogen werden.

Lösung:

1. Aufrufbare Ansichtselemente importieren und angeben:

Ändern Sie die URL-Muster, um importierte aufrufbare Ansichtselemente einzuschließen. Wenn den Mustern Namen fehlen, sollten Sie erwägen, diese hinzuzufügen, um eine korrekte URL-Umkehrung sicherzustellen.

<code class="python">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'),
]</code>
Nach dem Login kopieren

2. Modul „Ansichten importieren“:

Bei Projekten mit zahlreichen Ansichten kann das Importieren jeder Ansicht einzeln umständlich werden. Alternativ können Sie erwägen, das gesamte Ansichtsmodul aus der App zu importieren.

<code class="python">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>
Nach dem Login kopieren

Alias ​​verwenden:

Beachten Sie die Verwendung von as-Anweisungen (z. B. as myapp_views) zum Importieren Module mit mehreren Ansichten ohne Namenskonflikte.

Zusätzliche Informationen:

  • Eine ausführliche Erklärung der URL-Dispatcher in Django finden Sie in der offiziellen Dokumentation.
  • Stellen Sie sicher, dass das Ansichtsmodul der App korrekt benannt und in die Einstellungsdatei importiert ist (z. B. INSTALLED_APPS).
  • Wenn der Fehler trotz der oben genannten Lösungen weiterhin besteht, überprüfen Sie die URL-Muster auf Tippfehler oder Syntaxfehler .

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „TypeError: View Must Be Callable' in Django 1.10?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage