【问题标题】:Django simple template tag with "if"带有“if”的Django简单模板标签
【发布时间】:2016-02-28 10:42:28
【问题描述】:

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

@register.simple_tag
def show_language_choice_dropdown_menu():
    return SHOW_LANGUAGE_CHOICE_DROPDOWN_MENU

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

{% if show_language_choice_dropdown_menu %}

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

【问题讨论】:

  • 您是否将其作为 {% load awesome_tags_file %} 包含在您的 html 中?

标签: django templates custom-tags


【解决方案1】:

我想知道你是否可以这样做。 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

【讨论】:

    猜你喜欢
    • 2021-10-09
    • 1970-01-01
    • 2012-12-02
    • 1970-01-01
    • 2011-02-26
    • 2016-01-22
    • 2011-09-21
    • 1970-01-01
    • 2012-09-12
    相关资源
    最近更新 更多