Django自定义标记:不带上下文的包含标记

Django自定义标记:不带上下文的包含标记,django,django-templates,Django,Django Templates,我已经通读了这本书,但我不知道如何才能做到这一点。我想制作一个只呈现字符串的自定义标记。没有上下文,每次都是相同的字符串文本。在这种情况下,我更希望这样做,而不是将{%include'hello_world.htm%}放在所有地方: Foo, foo foo <br> {% hello_world %} <br> bar bar bar 没有骰子。我在custom_tags.py中有其他自定义标记,我正在加载它们,它们工作正常,但总是 Invalid block tag

我已经通读了这本书,但我不知道如何才能做到这一点。我想制作一个只呈现字符串的自定义标记。没有上下文,每次都是相同的字符串文本。在这种情况下,我更希望这样做,而不是将{%include'hello_world.htm%}放在所有地方:

Foo, foo foo
<br>
{% hello_world %}
<br>
bar bar bar
没有骰子。我在custom_tags.py中有其他自定义标记,我正在加载它们,它们工作正常,但总是

Invalid block tag: 'hello_world', expected 'endblock' or 'endblock content'
文件上说

标记比过滤器更复杂,因为标记可以做任何事情


。。。如何使用标签做最简单的事情

您可以使用一个简单的标记来完成此操作:


然后在模板中,您可以编写
{%hello\u world%}
来呈现字符串。

不,他正在使用一个包含标记,因为他也在呈现模板。是的,他就是这么做的,但问题是“我想制作一个只呈现字符串的自定义标记”,这就是我的解决方案所提供的。
from django import template
register = template.Library()

@register.inclusion_tag('hello_world.htm')
def hello_world():
     return {}

# Or:

def hello_world():
     return {}
register.inclusion_tag('hello_world.htm', takes_context=False)(hello_world)
Invalid block tag: 'hello_world', expected 'endblock' or 'endblock content'
from django import template

register = template.Library()

@register.simple_tag
def hello_world():
    return u'Hello world'