Pie*_*ert 3 tags django templates filter
您能想到在模板渲染过程中将文本字段评估为模板的简单方法吗?
我知道如何在视图中执行此操作,但我正在寻找模板过滤器或标签?
就像是:
{{ object.textfield|evaluate}}
要么
{% evaluate object.textfield %}
with object.textfield包含以下内容:
a text with a {% TemplateTag %}.
TemplateTag由于evaluate过滤器,将在其中评估.
Pie*_*ert 12
这是第一个解决我的问题的Tag实现:
from django import template
register = template.Library()
@register.tag(name="evaluate")
def do_evaluate(parser, token):
"""
tag usage {% evaluate object.textfield %}
"""
try:
tag_name, variable = token.split_contents()
except ValueError:
raise template.TemplateSyntaxError, "%r tag requires a single argument" % token.contents.split()[0]
return EvaluateNode(variable)
class EvaluateNode(template.Node):
def __init__(self, variable):
self.variable = template.Variable(variable)
def render(self, context):
try:
content = self.variable.resolve(context)
t = template.Template(content)
return t.render(context)
except template.VariableDoesNotExist, template.TemplateSyntaxError:
return 'Error rendering', self.variable
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2784 次 |
| 最近记录: |