Django自定义模板标签

时间:2018-08-24 11:02:55

标签: django django-templates

我在名为custom_tags.py的文件中定义了一个自定义模板标签:

from django.conf import settings
from django import template

register = template.Library()

@register.simple_tag
def currencysymbol():
    if settings.LANGUAGE_CODE == 'en-gb':
        return '£'
    else:
        return 'unknown'

在模板中引用了哪个:

{% load custom_tags %}
{{ currencysymbol }}

问题在于它无法渲染。肯定是在加载库,因为我将加载标记修改为{% load foo %},它正确地告诉我该库不存在,并列出了'custom_tags'作为可用选项之一。

但是,{{ currencysymbol }}完全不呈现任何内容。为了确保它不是我的功能,我对其进行了修改,使其仅返回一个字符串(不包含if / else和设置内容),但仍不呈现任何内容。

我相信我已经遵循了文档,所以我不确定发生了什么。页面呈现没有错误,但是我的标签根本不在那儿。

1 个答案:

答案 0 :(得分:1)

您定义了一个标签,因此,您应该像这样使用它:

{% currencysymbol %}

因此,使用{% .. %}括号,不是

{{ currencysymbol }}

{{ .. }}用于变量