Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menyelesaikan Ralat \'TypeError: View Must Be Callable\' dalam Django 1.10?
Ikhtisar:
Setelah menaik taraf kepada Django 1.10, pengguna mungkin menghadapi ralat menyatakan, "view mestilah boleh dipanggil atau senarai/tuple dalam kes include()." Ralat ini berlaku disebabkan oleh perubahan dalam cara Django mengendalikan spesifikasi paparan dalam corak URL.
Punca:
Bermula dengan Django 1.10, menentukan paparan sebagai rentetan ('myapp.views .home') tidak lagi disokong. Django kini memerlukan paparan boleh panggil untuk diimport secara eksplisit dan disertakan dalam corak URL.
Penyelesaian:
1. Import dan Tentukan View Callables:
Ubah suai corak URL untuk memasukkan paparan yang diimport boleh panggil. Jika corak kekurangan nama, pertimbangkan untuk menambahkannya untuk memastikan pembalikan URL yang betul.
<code class="python">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>
2. Modul Import Paparan:
Untuk projek dengan banyak paparan, mengimport setiap paparan secara individu boleh menjadi menyusahkan. Sebagai alternatif, pertimbangkan untuk mengimport keseluruhan modul paparan daripada apl.
<code class="python">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>
Menggunakan Alias:
Perhatikan penggunaan sebagai pernyataan (cth., sebagai myapp_views) untuk mengimport modul berbilang paparan tanpa pertembungan nama.
Maklumat Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'TypeError: View Must Be Callable\' dalam Django 1.10?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!