2012-08-08 46 views
0

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

回答

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是空的,您可能还需要将带有模板变量的字典传递给它。

此外,要在模板中直接处理它,您可以编写一个自定义的模板标签,它可以做类似的事情,基本上是一个templatetag,用于为模板标签分析字符串。

+0

非常感谢Dirk – Goran 2012-08-10 20:24:50