现在我不得不这样做(模板代码)最佳实践:Django的:标志模型领域安全的模板
object.name|safe
有很多次,我只是单纯地忘记添加safe
过滤器。我的问题:
这些对象是用户在表单级别提交和清理的。为什么我应该更加小心地标记它们是否安全?
如果上面的答案是“你很好去”,那么默认情况下如何使模型字段安全?无需记住使用
safe
标签?
现在我不得不这样做(模板代码)最佳实践:Django的:标志模型领域安全的模板
object.name|safe
有很多次,我只是单纯地忘记添加safe
过滤器。我的问题:
这些对象是用户在表单级别提交和清理的。为什么我应该更加小心地标记它们是否安全?
如果上面的答案是“你很好去”,那么默认情况下如何使模型字段安全?无需记住使用safe
标签?
safe
是一个处理HTML编码的模板标签,而不是对象验证。
见documentation
您只需如果你用HTML数据输出文本字段内,例如该hyour用户与TinyMCE的或CKEditor的
填写关于#2的文本字段使用它,有一个称为mark_safe的文档记录功能很差,您可以使用它。例如,在我写了一个自定义表单字段我需要返回与该label_from_instance方法HTML代码的字符串,所以我回用mark_safe:
return mark_safe('<span class="foo">Some HTML output</span>')
要扩展什么多米尼克说,安全过滤器是指标记模板渲染器的安全信息。默认情况下,Django会将模板上的所有输出转义为输出不安全,这意味着它可能包含不希望浏览器解释为代码的html/script代码。如果你确实有一个代码需要浏览器解释的字段,你可以使用安全标签来告诉Django在没有任何自动转义的情况下输出。 – 2011-01-24 15:10:32