PythonSchrödinger的Int / None

时间:2016-02-28 11:24:39

标签: python django int nonetype

这是一个非常奇怪的问题。

我有一些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

0 个答案:

没有答案