Django 無法定位指定範本並拋出 TemplateDoesNotExist 類型的例外。即使模板存在於磁碟上,Django 期望找到模板的位置也不存在。
Django 在載入範本時遵循特定的順序:
在這種情況下,TEMPLATE_DIRS 的配置指示 Django 在 /usr/lib/python2.5/site-packages/projectname/templates 中尋找模板。但是,模板組織在 /usr/lib/python2.5/site-packages/projectname/templates/appname/template_name.html 中。 Django 無法找到模板,因為它希望它們位於 templates 目錄的根目錄中。
要解決此問題,請將範本移至/usr/lib/python2.5 /site-packages/projectname/templates/template_name.html.
或者,考慮修改TEMPLATE_DIRS 以在應用程式的範本目錄中搜尋範本:
<code class="python">TEMPLATE_DIRS = ( os.path.join(SETTINGS_PATH, 'appname1/templates'), os.path.join(SETTINGS_PATH, 'appname2/templates'), os.path.join(SETTINGS_PATH, 'appname3/templates'), )</code>
如果上述解決方案不起作用,請檢查範本目錄的所有權權限。在給定的情況下,執行chown -R www-data:www-data /usr/lib/python2.5/site-packages/projectname/* 解決了這個問題,因為Web 伺服器使用者需要適當的權限才能存取模板。
以上是以下是一些適合您的內容的基於問題的標題: 直接和具體: * 為什麼 Django 會拋出 TemplateDoesNotExist 錯誤,即使我的模板存在? * Django 模板載入:的詳細內容。更多資訊請關注PHP中文網其他相關文章!