Heim  >  Artikel  >  Backend-Entwicklung  >  Warum erhalte ich in Django-URLs den Fehler „Ansicht muss im Falle von include() eine aufrufbare Ansicht oder eine Liste/ein Tupel sein“?

Warum erhalte ich in Django-URLs den Fehler „Ansicht muss im Falle von include() eine aufrufbare Ansicht oder eine Liste/ein Tupel sein“?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-22 08:02:02694Durchsuche

Why am I getting a

Django URLs TypeError: „Ansicht muss ein Callable oder eine Liste/ein Tupel im Fall von include() sein.“

Ursache:

Ab Django 1.10 ist die Angabe von Ansichten als Zeichenfolgen (z. B. „myapp.views.home“) in URL-Mustern nicht mehr zulässig.

Lösung :

Aktualisieren Sie Ihre urls.py-Datei so, dass sie die tatsächlich aufrufbare Ansicht enthält:

Option 1: Ansichten einzeln importieren und referenzieren

<code class="python">from django.conf.urls import 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'),
]</code>

Option 2: Importieren Sie das Ansichtsmodul und Referenzansichten

<code class="python">from django.conf.urls import 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>

Hinweis:

  • Die Verwendung von as ermöglicht Ansichten aus mehreren Apps können ohne Namenskonflikte importiert werden.
  • Erwägen Sie die Benennung von URL-Mustern für eine bessere Lesbarkeit und URL-Umkehrung.
  • Weitere Informationen finden Sie in der Django URL Dispatcher-Dokumentation.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in Django-URLs den Fehler „Ansicht muss im Falle von include() eine aufrufbare Ansicht oder eine Liste/ein Tupel sein“?. 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