如何在模板中使用Django自定义模板标记?

时间:2010-09-16 11:04:10

标签: python django django-templates

我写了一个自定义模板标签:

def mytag(para):
    return something

在我的模板中,我获得了值{{value}}。现在我使用{{value|mytag}}将标记应用于值,并且它会引发语法错误。

2 个答案:

答案 0 :(得分:5)

您的示例看起来像一个过滤器。如果这就是你想要的,那就相当简单了。保罗与文档的链接应该提供一个相当清楚的解释,说明如何以及为什么要做事情。这是一个快速入门,可以让你开始运行。

  1. 在您的应用中创建一个名为“templatetags”的文件夹,其中包含空的__init__.py文件
  2. 创建一个文件来保存自定义标记,我们现在说“tags.py”。
  3. 你的tags.py文件应该是这样的:

    from django import template
    register = template.Library()
    
    @register.filter
    def mytag(para):
        return 'something'
    

    然后,在您的模板中,您首先必须加载自定义标记,然后才能访问它。

    {% load tags %}
    
    My new value is: {{ value|mytag }}
    

答案 1 :(得分:2)

要在Django中使用模板标记,请在{%%}中包装标记的名称,如下所示:

{% mytag %}

如果您的标记带有参数,就像您的标记一样,您可以在标记名称后面传递参数:

{% mytag value %}

您尝试使用的语法 - {{ value|mytag }}用于模板过滤器,而不是标记。