我注意到,如果你将一个名为 some_copy 的包含 unicode 字符串的变量传递给 Django 模板:
some_copy <type 'unicode'>
some_copy|length <type 'int'>
some_copy|safe <class 'django.utils.safestring.SafeUnicode'>
some_copy|safe|length <class 'django.utils.safestring.SafeString'>
我注意到长度过滤器只是len()
在输入上调用,所以django.utils.safestring.SafeUnicode
在终端上测试了导入,它似乎只是<type 'int'>
在你调用时返回len()
。关于安全过滤器如何与其他过滤器交互,这里有什么奇怪的吗?我知道有注释建议不要在安全后使用其他过滤器,因为它们可能会使输出不那么安全。此外,这段代码产生了一个错误,不再包含对 的调用safe|length
,但我很好奇发生了什么。