无法覆盖模板包含标记中的默认kwarg值False

时间:2012-06-28 21:43:07

标签: python django django-templates

我写过这个模板包含标签:

@register.inclusion_tag('blog/post_detail.html')
def post_detail(post, show_meta=True):
    return {
        'post': post,
        'show_meta': show_meta
    }

我称之为:

{% post_detail post show_meta=False %}

这很好用。模板已正确呈现,show_meta的值为False

但是,如果我将show_meta的默认值更改为False,请执行以下操作:

def post_detail(post, show_meta=False):

然后,如果我尝试使用{% post_detail post show_meta=True %}调用它,则模板仍会使用show_meta呈现,其值为False。为什么呢?

1 个答案:

答案 0 :(得分:1)

默认情况下,

TrueFalse未在模板上下文中定义,并且通常的模板语言规则将不存在的名称视为False。尝试传递0和1。