0

model.TextField我需要在值内自定义模板标签。来自对象文本字段的值类似于"lorem ipsum dolor {% mytag %}"但“mytag”未呈现为模板标签。它在库中注册为标签并加载到页面上,我有{{ object.textfield|safe }}过滤器。有可能吗?

4

1 回答 1

1

由于 Django 的模板引擎可以轻松地在您的代码中的任何地方使用,您应该能够执行以下操作:

from django.template import Context, Template
rendered = Template("{% load your_tag_library %}",
    object.textfield).render(Context())

它不是从文件中呈现模板,而是从如下字符串呈现模板:

"{% load your_tag_library %}lorem ipsum dolor {% mytag %}"

例如,代码可以在您的视图中使用或作为模型上的方法。请注意,它Context是空的,您不妨将带有模板变量的 dict 传递给它。

此外,要直接在模板中处理它,您可以编写一个执行类似操作的自定义模板标签,基本上是一个为模板标签解析字符串的模板标签。

于 2012-08-09T19:47:31.070 回答