这是一个非常奇怪的问题。
我有一些django管理代码,持续时间以秒为单位,将其四舍五入到下一分钟,并将其乘以10.(之所以无关紧要)。
以下代码给出了以下错误:
不支持的操作数类型+:'NoneType'和'int'
def charge(self, obj):
return int((obj.duration + 59) / 60) * 10
如果我测试None-ness,然后进行计算,则代码可以工作:
def charge(self, obj):
dur = obj.duration
if dur is None:
return dur
else:
return int((dur + 59) / 60) * 10
obj.duration的结果在两种情况下都是相同的。
这里发生了什么?
更新 - 问题被理解:虽然我'解决了'if ... else ...行的问题,但真正的问题是我不明白obj发生了什么。这是Django文档中的相关页面:
https://docs.djangoproject.com/es/1.9/ref/models/querysets/#when-querysets-are-evaluated