我收到一条消息,说明:
Traceback (most recent call last):
File "/var/www/fosa/error_supressor.py", line 46, in <module>
sys.stderr.write(latest + '\n')
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
我一直试图解决这个问题好几天,但说实话,我是一个多才多艺的程序员。 因此,让我们排队问题,看看是否有一个耐心的人可以节省一些时间来解决一个不起眼的陌生人的问题: - )
除此之外,当我检查我的错误日志时,我发现此错误消息,我怀疑它是相关的:
File "/var/www/fosa/app/controllers/client/client.py", line 601, in detail
if not course.bookable or not course.school.partner.active: # both objects are boolean
AttributeError: 'NoneType' object has no attribute 'bookable'
答案 0 :(得分:4)
有些内容将None
绑定到latest
。弄清楚它是什么并修复你的逻辑错误。
有些内容将None
绑定到course
。图等。
答案 1 :(得分:3)
显然,从追溯中,人们有:
- latest
为无
- course
为无
python中的一个常见模式是将变量名称始终绑定到唯一类型,除非可以分配的最有意义的值是“null”值,在这种情况下,您将使变量等于{ {1}}。例如。说None
从数据库返回一个对象,但当没有对象get(pk)
的对象时,它返回None
。要解决这个问题我会这样做:
写下如下内容:
pk
或者
if latest is None:
# do something
else:
sys.stderr.write(latest + '\n')
而不是
sys.stderr.write('%s\n' % latest) #so that latest can be of any type