Django:将模型字段标记为模板安全的最佳实践

时间:2011-01-24 12:27:57

标签: python django django-models django-templates

现在我必须做(模板代码):

object.name|safe

有很多次我只是忘记添加safe过滤器。我的问题:

  1. 这些对象是用户在表单级别提交和清理的。为什么我应该更加小心地将它们标记为安全?

  2. 如果上面的答案是“你还好”,我该如何在默认情况下使模型字段安全?无需记住使用safe代码?

2 个答案:

答案 0 :(得分:4)

关于#2,你可以使用一个名为mark_safe的文档很少的文档。例如,在我编写的自定义表单字段中,我需要返回一个包含label_from_instance方法的HTML代码的字符串,因此我返回使用mark_safe:

return mark_safe( '<span class="foo">Some HTML output</span>' )

答案 1 :(得分:0)

safe是一个处理HTML编码的模板标签,而不是对象验证 请参阅documentation

如果你输出带有HTML数据的TextField,你只需要使用它,例如,用户正在填充tinyMCE或CKEditor的文本字段