Django简单模板标签带"如果"

时间:2015-11-25 15:09:00

标签: django templates custom-tags

我有一个简单的自定义模板标记:

@register.simple_tag
def show_language_choice_dropdown_menu():
    return SHOW_LANGUAGE_CHOICE_DROPDOWN_MENU

从设置中获取布尔值。如果我只是把它放在文本中没有问题,会出现正确的值,但如果我尝试检查:

{% if show_language_choice_dropdown_menu %}

它不起作用 - 每次都是假的。怎么了?

1 个答案:

答案 0 :(得分:2)

我想知道你是否可以这样做。 if语句查找变量show_language_choice_dropdown_menu,可能没有这样的变量。请尝试使用赋值标记:

@register.assignment_tag
def show_language_choice_dropdown_menu_tag():
  return SHOW_LANGUAGE_CHOICE_DROPDOWN_MENU

然后按如下方式使用它:

{% show_language_choice_dropdown_menu_tag as show_language_choice_dropdown_menu %}
{% if show_language_choice_dropdown_menu %}

有关详细信息,请参阅https://docs.djangoproject.com/en/1.8/howto/custom-template-tags/#assignment-tags