Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Membetulkan \'TypeError: view mestilah boleh dipanggil atau senarai/tuple\' dalam URL Django?

Bagaimana untuk Membetulkan \'TypeError: view mestilah boleh dipanggil atau senarai/tuple\' dalam URL Django?

DDD
DDDasal
2024-10-22 08:05:30786semak imbas

How to Fix

Ralat dalam URL Django: Memahami "TypeError: paparan mestilah boleh dipanggil atau senarai/tuple dalam kes include()"

Peningkatan kepada Django 1.10 boleh membawa kepada ralat yang berkaitan dengan format definisi paparan dalam corak URL:

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

Punca:

Sebelum Django 1.10, pandangan boleh ditentukan sebagai rentetan yang merujuk kepada lokasinya dalam modul, seperti 'myapp.views.home'. Walau bagaimanapun, amalan ini tidak lagi disokong.

Penyelesaian:

Dalam Django 1.10 dan lebih baharu, definisi paparan mesti disediakan sebagai fungsi boleh panggil atau senarai/tuple bagi boleh panggil fungsi. Ini bermakna anda perlu sama ada:

1. Import Fungsi Paparan:

Kemas kini urls.py anda untuk mengimport fungsi paparan secara eksplisit dan berikannya sebagai boleh panggil:

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

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

2. Import Modul Views dan Gunakan Alias:

Jika anda mempunyai berbilang paparan dalam satu modul, anda boleh mengimport keseluruhan modul dan menggunakan alias untuk mengakses paparan khusus:

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

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

Mengimport Paparan daripada Apl Lain:

Jika paparan yang anda mahu gunakan terletak dalam apl lain, anda boleh mengimport modul paparan apl dan menggunakan teknik yang sama seperti di atas:

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

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

Nota: Apabila mengimport paparan dengan cara ini, anda disyorkan untuk menggunakan alias (cth., sebagai another_app_views) untuk mengelakkan sebarang konflik dengan paparan yang ditakrifkan dalam apl anda sendiri.

Maklumat Tambahan:

Untuk butiran lanjut tentang menentukan corak URL dalam Django, sila rujuk dokumentasi penghantar URL Django: https://docs.djangoproject.com/en/stable/topics/http /urls/

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan \'TypeError: view mestilah boleh dipanggil atau senarai/tuple\' dalam URL Django?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn