django 1.8 出現 TemplateDoesNotExist 錯誤


出現TemplateDoesNotExist錯誤的原因有很多,常見的原因如下

1   文件路徑錯誤

解決辦法 看路徑是否設置正確

2  TEMPLATE_DIR 賦值格式錯誤,經常將字符串賦值給它,正確應該是元組

解決辦法  

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIRS = (

    os.path.join(BASE_DIR, 'templates').replace('\\', '/'),
    )
 

3  這就是本文的重點,被這個bug折騰了好幾個小時

解決辦法:

樓主一開始一直以為是上面兩種錯誤,但是嘗試了好多方法都還是不行,例如改為絕對路徑 ,例如不使用元組,但無論怎么改就是不行。

因為沒有意識到是Djang版本問題,一直在stackoverflow上把關於 TemplateDoesNotExist的問題一個一個看,

偶然之間發現了一個回答,附上鏈接 :TemplateDoesNotExist in project folder django 1.8

 

樓主環境是 Ubuntu 下 Python 3.4 Django 1.8 

 

發現Django1.8,設置要加載模板的路徑時,不是直接自己定義一個TEMPLATE_DIR,然后給它賦值

而是修改TEMPLATE那里加上一個 DIR的值,
 
#settings.py
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]


改完之后便能成功運行,故樓主認為是Django的版本問題。

本人才疏學淺,以上皆是一孔之見,如果有什么錯誤,望不吝賜教。

可隨意轉載,但請說明出處。





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM