我正在尝试使用Django的内置'默认'过滤器使用此代码
<title>{{ title|default :"nothing" }}</title>
但它给了我以下例外
django.template.base.TemplateSyntaxError:默认值需要2个参数,已提供1个
我正在为我的模板后端使用以下设置
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
str(APPS_DIR.path('templates')),
],
'OPTIONS': {
'debug': DEBUG,
'loaders': [
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
],
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'allauth.account.context_processors.account',
'allauth.socialaccount.context_processors.socialaccount',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages',
'sekizai.context_processors.sekizai',
],
},
},
]
我的编辑器将代码标记为无效,但我检查了上千次https://docs.djangoproject.com/en/1.8/ref/templates/builtins/。
其中这作为示例给出:
{{ value|default:"nothing" }}
我还尝试更改title var的名称,以确保它不是保留关键字。
3条答案
按热度按时间qf9go6mv1#
确保冒号后面没有空格。
这是正确的:
这会抛出一个异常:
h43kikqp2#
尝试:
default_if_none如果变量为'None',则显示给定的字符串。
default将显示字符串,如果变量计算为False,即空字符串,空列表等
同时确保在上下文中发送title变量,否则必须使用default_if_none
ecfdbz9o3#
使用Django模板过滤器,在
:
之前或之后放置空格会导致错误,如下所示:因此,不要在那里放置任何空间,以免出现错误,如下所示:
此外,在
|
之前或之后放置空间不会出现错误: