我升級到Django 1.8的全新安裝,並開始使用Jinja2,因爲它表示它現在被支持,Jinja2有一些功能可以在我的項目中使用。Django 1.8與Jinja2:Contrib應用程序管理員不工作
完成了將我的應用程序的模板調整爲Jinja2並利用現有新功能的優勢後,我發現contrib應用程序管理員不再有效。
「TemplateDoesNotExist AT /管理/登入/」
所以事實證明了contrib應用管理不僅具有模板DjangoTemplates而不是做的Jinja2。我首先做了一件天真的事,並在[...]/site-packages/django/contrib/admin
中創建了一個符號鏈接,從templates
到jinja2
,但模板使用的是DjangoTemplates細節,因此Jinja2不接受它們。我刪除了符號鏈接。
我已經切換到Jinja2的的方法是進行以下更改在我的項目settings.py
:
TEMPLATES = [
{
- 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'BACKEND': 'django.template.backends.jinja2.Jinja2',
'DIRS': [],
'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',
- ],
- },
},
]
有誰知道任:
- 如何讓的contrib應用程序管理員保留使用DjangoTemplates,同時讓我自己的應用程序使用Jinja2,或
- 如果有另一個管理應用程序與支持Jinja2的默認應用程序一樣好,或者
- 如果有其他事情我忽略了或者應該知道?
感謝您的時間:)
我大部分時間都跟着你的建議,而且效果很好。我做的不同的是,我把Jinja2放在DjangoTemplates之前,而不是在正常運行之後,它是模板引擎,它通常是正確的,而不是像在你的例子中那樣提供DIRS,我把它們留在默認值(空列表)幷包含一些其他默認值。 – 2015-04-02 22:28:14