ola*_*ndo 2 django escaping widget
我创建了一个自定义窗口小部件和一个使用它的窗体.以前,我只是有一个简单的模板来显示我调试时的表单:
<form>
{{ run_form.as_p }}
</form>
Run Code Online (Sandbox Code Playgroud)
现在我想将每个表单字段括在div中,所以我将模板更改为
{% for field in form %}
<div class="fieldWrapper">
{{ field.errors }}
{{ field.label_tag }}: {{ field }}
</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
但现在看来,当我的字段被渲染时,它的所有字符都被html转义,所以现在当我查看它的源代码时,它看起来就像<input type="text" id="id_scriptscrap"/>应该存在的地方
<input type="text" id="id_scriptscrap"/>.
有什么我想念的吗?为什么第一个模板会在没有转义的情况下输出它,而第二个模板会逃脱?也许我在创建自定义窗口小部件类时做错了什么?
也许我在创建自定义窗口小部件类时做错了什么?
可能,虽然因为你没有发布代码而无法分辨.
之所以form.as_p有效,原因在于该form._html_output()方法(即各种as_foo方法使用的方法)调用mark_safe其输出.但是,每个内置窗口小部件类也会调用mark_safe自己的输出,这就是它们单独工作的原因.您可能只需要在自定义小部件上执行相同操作.