Kam*_*ski 4 python string django django-templates
假设我有一个名为*magic_string*的字符串变量,其值设置为"此产品名称为{{product.name}} ",并且可以在django模板中使用.是否有可能解析该变量以显示"此产品名称为Samsung GT-8500"(假设产品名称为"GT-8500"且变量{{product.name}}可在同一模板中使用)?
我试图做这样的事情,但它不起作用(老实说?我并不感到惊讶):
{{ magic_string|safe }}
Run Code Online (Sandbox Code Playgroud)
有关我的问题的任何想法/建议?
编写自定义模板标记并将该变量渲染为模板.例如,看看如何写"ssi"标签.
另一方面,您可以在视图中渲染此字符串吗?无论如何这里是该标签的未经测试的版本:
@register.tag
def render_string(parser, token):
bits = token.contents.split()
if len(bits) != 2:
raise TemplateSyntaxError("...")
return RenderStringNode(bits[1])
class RenderStringNode(Node):
def __init__(self, varname):
self.varname = varname
def render(self, context):
var = context.get(self.varname, "")
return Template(var).render(context)
Run Code Online (Sandbox Code Playgroud)
小智 6
也许我不明白你的问题,但是,怎么样,
from django.template import Context, Template
>>> t = Template("This product name is {{ product.name }}")
>>> c = Context({"product.name": " Samsung GT-8500"})
>>> t.render(c)
Run Code Online (Sandbox Code Playgroud)
问候.
| 归档时间: |
|
| 查看次数: |
2725 次 |
| 最近记录: |