我有一个非常具体的问题。
我编写了一个特殊的模板标记,根据一些计算显示一些HTML代码。标记调用如下所示:
{% chord 'A' %}
生成的输出是
<div class="chord">A <audio src="/media/chords/A/A.mp3" controls>Not supported</audio></div>
我需要把这个输出放在视图中的变量中,而不是放在模板中 . 有可能吗?有没有一个方法,我可以从视图内部调用,用给定的参数获取自定义标记输出?
好吧,您可以在视图中定义一个模板字符串并渲染它:
tpl = Template("{% load chord %}{% chord 'A' %}") html = tpl.render(Context())
但更好的方法可能只是将标记代码的逻辑提取到实用函数中,您可以从视图和模板标记本身调用该实用函数。