Wie behebt man „TypeError: view must be a callable or list/tuple' in Django-URLs?

DDD
Freigeben: 2024-10-22 08:05:30
Original
698 Leute haben es durchsucht

How to Fix

Fehler in Django-URLs: Verständnis des „TypeError: view must be a callable or a list/tuple in the case of include()“

Ein Upgrade auf Django 1.10 kann zu einem Fehler im Zusammenhang mit dem Format der Ansichtsdefinitionen in URL-Mustern führen:

TypeError: view must be a callable or a list/tuple in the case of include().
Nach dem Login kopieren

Ursache:

Vor Django 1.10, Ansichten können als Zeichenfolgen angegeben werden, die sich auf ihre Position innerhalb eines Moduls beziehen, z. B. „myapp.views.home“. Diese Vorgehensweise wird jedoch nicht mehr unterstützt.

Lösung:

In Django 1.10 und höher müssen Ansichtsdefinitionen als aufrufbare Funktionen oder als Liste/Tupel von aufrufbaren Funktionen bereitgestellt werden Funktionen. Das bedeutet, dass Sie entweder:

1. Importieren Sie die Ansichtsfunktion:

Aktualisieren Sie Ihre urls.py, um die Ansichtsfunktion explizit zu importieren und als aufrufbare Funktion bereitzustellen:

<code class="python">from myapp.views import home

urlpatterns = [
    url(r'^$', home, name='home'),
]</code>
Nach dem Login kopieren

2. Importieren Sie das Ansichtsmodul und verwenden Sie Aliase:

Wenn Sie mehrere Ansichten in einem einzelnen Modul haben, können Sie das gesamte Modul importieren und Aliase verwenden, um auf die spezifischen Ansichten zuzugreifen:

<code class="python">from myapp import views as myapp_views

urlpatterns = [
    url(r'^$', myapp_views.home, name='home'),
]</code>
Nach dem Login kopieren

Ansichten aus anderen Apps importieren:

Wenn sich die Ansichten, die Sie verwenden möchten, in einer anderen App befinden, können Sie das Ansichtsmodul der App importieren und die gleiche Technik wie oben verwenden:

<code class="python">from another_app import views as another_app_views

urlpatterns = [
    url(r'^$', another_app_views.my_view, name='my_view'),
]</code>
Nach dem Login kopieren

Hinweis: Beim Importieren von Ansichten auf diese Weise wird empfohlen, Aliase zu verwenden (z. B. another_app_views), um Konflikte mit in Ihrer eigenen App definierten Ansichten zu vermeiden.

Zusätzliche Informationen:

Weitere Informationen zum Definieren von URL-Mustern in Django finden Sie in der Dokumentation zum Django URL Dispatcher: https://docs.djangoproject.com/en/stable/topics/http /urls/

Das obige ist der detaillierte Inhalt vonWie behebt man „TypeError: view must be a callable or list/tuple' in Django-URLs?. 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
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!