Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Django Melemparkan Ralat \"TemplateDoesNotExist\" dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Django Melemparkan Ralat \"TemplateDoesNotExist\" dan Bagaimana Saya Boleh Membetulkannya?

Linda Hamilton
Linda Hamiltonasal
2024-10-30 18:08:03911semak imbas

 Why Does Django Throw a

Ralat "TemplateDoesNotExist" Django: Punca dan Penyelesaian

Ralat "TemplateDoesNotExist" Django berlaku apabila rangka kerja tidak dapat mengesan templat untuk dipaparkan Isu ini boleh timbul disebabkan oleh pelbagai salah konfigurasi atau struktur fail yang salah.

Dalam kes yang disediakan, laluan templat ditakrifkan sebagai:

<code class="python">TEMPLATE_DIRS = (
    os.path.join(SETTINGS_PATH, 'templates'),
)</code>

Tetapan ini menentukan bahawa Django harus mencari templat dalam subdirektori "template" bagi direktori projek, di mana SETTINGS_PATH dijangka menjadi laluan ke direktori yang mengandungi settings.py.

Walau bagaimanapun, mesej ralat menunjukkan bahawa Django sedang cuba memuatkan templat dari lokasi bermula dengan "/usr/lib/python2.5/site-packages/projectname/templates/appname/". Ini berbeza daripada lokasi yang dijangkakan.

Penyelesaian Berkemungkinan:

  1. Pindahkan Templat:
    Alihkan templat ke boleh diakses daripada laluan TEMPLATE_DIRS yang ditentukan. Ini melibatkan meletakkannya terus di bawah subdirektori "templat" dalam direktori projek. Contohnya:

    /usr/lib/python2.5/site-packages/projectname/templates/appname1/template1.html
    /usr/lib/python2.5/site-packages/projectname/templates/appname2/template2.html
  2. Konfigurasikan Projek Django:
    Pastikan Django dikonfigurasikan dengan betul dalam settings.py. Ini termasuk menentukan aplikasi yang dipasang dan berpotensi menentukan SETTINGS_PATH. Jika SETTINGS_PATH tidak ditakrifkan, tambahkan baris berikut:

    <code class="python">import os
    SETTINGS_PATH = os.path.dirname(os.path.dirname(__file__))</code>
  3. Kebenaran Fail:
    Sebagai penyelesaian sementara, cuba tukar kebenaran templat direktori:

    chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/*

Atas ialah kandungan terperinci Mengapa Django Melemparkan Ralat \"TemplateDoesNotExist\" dan Bagaimana Saya Boleh Membetulkannya?. 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