jianja2 TEMPLATES问题解决
问题
在学习jianja2的时候,运行项目报错如下:
?: (admin.E403) A ‘django.template.backends.django.DjangoTemplates’ instance must be configured in TEMPLATES in order to use the admin application.
翻译一下,大概就是说:django的实例必须在TEMPLATES中配置才能使用管理应用。
解决方案
原代码
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'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',
],
},
},
]
学习jianja2修改的
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',
],
'environment': 'meiduo_mall.utils.jinja2_env.jinja2_environment',
},
},
]
最终修复方案
由于是因为没有配置DjangoTemplates导致的问题,那就需要将注释掉的代码加回来,但是又要学习jinja2,需要两者共存,那就将DjangoTemplates加到jinja2后面。
注意:DjangoTemplates一定要加到jinja2后面,否则jinja2不生效。
TEMPLATES = [
{
'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',
],
'environment': 'meiduo_mall.utils.jinja2_env.jinja2_environment',
},
},
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'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',
],
},
},
]