我得到了一个django.utils.safestring.safettext在我的单元测试中:
ipdb> mail.outbox[0].body
u'Dear John Doe,<br>\n<p>\nYou have received a ..
ipdb> type(mail.outbox[0].body)
<class 'django.utils.safestring.SafeText'>
我想把上面的内容转换成一个字符串,这样我就可以去掉\n
字符。。即我想使用rstrip()
方法。。但我显然不能在django.utils.safestring.SafeText
对象上这样做。思想?在
基于SafeText创建新字符串
你可以用
django.utils.safestring.SafeText
做你想做的事情反对。你几乎可以将每个方法作为字符串应用于SafeText对象。可用的方法有但它们将返回unicode对象。示例:-在
^{pr2}$从Django 2.0.4开始,
str(mail.outbox[0].body)
不再工作,它返回相同的SafeText对象。(请参见this Django commit了解原因。)相反,您可以添加一个空字符串来取回常规字符串:
type(mail.outbox[0].body + "") == str
为了防止它对其他人有帮助,我遇到了这个问题,因为我试图将一个安全文本从Django传递到
pathlib.Path
,这会抛出TypeError: can't intern SafeText
。添加一个空字符串可以修复它。在相关问题 更多 >
编程相关推荐