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!