Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menyelesaikan Ralat \'TypeError: View Must Be Callable\' dalam Django 1.10?

Bagaimana untuk Menyelesaikan Ralat \'TypeError: View Must Be Callable\' dalam Django 1.10?

Barbara Streisand
Barbara Streisandasal
2024-10-22 08:00:03987semak imbas

How to Resolve the

TypeError: View Mesti Boleh Dipanggil 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:

  • Untuk penjelasan terperinci tentang penghantar URL dalam Django, rujuk dokumentasi rasmi.
  • Pastikan modul paparan apl dinamakan dan diimport dengan betul dalam fail tetapan (cth., INSTALLED_APPS).
  • Jika ralat berterusan walaupun penyelesaian di atas, semak sebarang kesilapan taip atau sintaks dalam corak URL .

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!

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