【发布时间】:2011-06-14 11:52:43
【问题描述】:
现在我必须做一些类似(模板代码)的事情:
object.name|safe
很多时候我只是忘记添加safe 过滤器。我的问题:
这些对象是用户在表单级别提交和清理的。是否有理由让我在将它们标记为安全时更加小心?
如果上面的答案是“你很高兴”,我如何使模型字段默认安全?不用记住使用
safe标签?
【问题讨论】:
标签: python django django-models django-templates
现在我必须做一些类似(模板代码)的事情:
object.name|safe
很多时候我只是忘记添加safe 过滤器。我的问题:
这些对象是用户在表单级别提交和清理的。是否有理由让我在将它们标记为安全时更加小心?
如果上面的答案是“你很高兴”,我如何使模型字段默认安全?不用记住使用safe 标签?
【问题讨论】:
标签: python django django-models django-templates
关于#2,您可以使用一个名为mark_safe 的文档记录不佳的函数。例如,在我编写的自定义表单字段中,我需要为 label_from_instance 方法返回一个带有 HTML 代码的字符串,因此我使用 mark_safe 返回:
return mark_safe( '<span class="foo">Some HTML output</span>' )
【讨论】:
safe 是一个处理 HTML 编码的模板标签,而不是对象验证。
见documentation
只有在输出带有 HTML 数据的 TextField 时才需要使用它,例如用户使用 tinyMCE 或 CKEditor 填充的文本字段
【讨论】: