1、今天更新完代码,突然间报了这个错误:'<' not supported between instances of 'SafeText' and 'int'
2、主要代码如下,其中是最后一行报错的:
if value is not None and value != '':
# 将要格式化的数值转成字符串对象
if type(value) == 'str':
value = value
val = Decimal(value)
else:
val = value
value = str(value)
# 处理负数
flag = '-' if val < 0 else ''
意思就是SafeText的不能和int做小于判断,断点调试,发现传过来的value类型是一个如下图的东西:
3、使用下面代码输入其类型:
print(type(value))
发现类型为<class 'django.utils.safestring.SafeText'>,安全文本类型,因此代码底下的if条件不通过,走到else里了,而val直接赋值为value了,所以后面判断时就会报上面的错误
4、修改代码如下:
if value is not None and value != '':
# 将要格式化的数值转成字符串对象
if type(value) == 'str':
value = value
val = Decimal(value)
else:
val = Decimal(value)
value = str(value)
# 处理负数
flag = '-' if val < 0 else ''
5、这样就不会报错了,暂时解决办法,以上内容仅供学习参考,谢谢!