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:
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
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>
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!