Wie löst man den TypeError von Django: Die Ansicht muss in URL-Mustern aufrufbar sein?

Barbara Streisand
Freigeben: 2024-10-22 08:03:30
Original
758 Leute haben es durchsucht

How to Resolve Django's TypeError: view must be a callable in URL Patterns?

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'),
]
Nach dem Login kopieren

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'),
]
Nach dem Login kopieren

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!

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!