不能在页面上使用 Jinja 元素
Posted
技术标签:
【中文标题】不能在页面上使用 Jinja 元素【英文标题】:Can't use Jinja elements on Page 【发布时间】:2017-11-20 07:42:19 【问题描述】:我正在研究 Django 和 Jinja 模板的新手。我可以从上下文中打印变量,但不能使用 Jinja 的其他功能。
当我在页面上执行 1+1 时。它显示:
无法解析余数:来自 '1+1' 的 '+1'
我正在尝试生成一个随机编号。通过 范围(1, 51) |随机 ,由this 回答。但它会抛出错误:
无法解析某些字符:范围|(1, 51)| |随机的
在 settings.py 中:
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',
],
,
,
]
【问题讨论】:
【参考方案1】:问题是您没有在 Django 项目中激活 Jinja2 模板。请正确设置模板引擎。
TEMPLATES = [
'BACKEND': 'django.template.backends.jinja2.Jinja2',
...
【讨论】:
新的 Django 配置。删除了支持的行。现在我得到“__init__() 有一个意外的关键字参数'context_processors'”。 如果您在问题中包含了您的漏洞 Django 设置,那么这将有助于我们调试更多...!还有你的 Django 版本是什么... 我使用的是 Django 1.10 版,将更新有问题的代码。【参考方案2】:TEMPLATES = [
'BACKEND': 'django.template.backends.jinja2.Jinja2',
'BACKEND': 'django.template.backends.django.DjangoTemplates', # remove this line
'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',
],
,
]
在第 3 行中,您使用 Django 模板引擎覆盖键 BACKEND
。
【讨论】:
删除了支持的行。现在我得到“__init__() 有一个意外的关键字参数 'context_processors'”。 Django 的版本是多少? Django 版本为 1.10 如果你不需要context_processors
你可以使用OPTIONS:
,但是如果你需要它们,那么你需要升级到1.11版本。
docs.djangoproject.com/en/1.11/topics/templates/…以上是关于不能在页面上使用 Jinja 元素的主要内容,如果未能解决你的问题,请参考以下文章