44

我的模型中有一个 ImageField,当我保存它时,我想检查它是否为 None。

在 django shell 中,我调用对象的 ImageField 并给出:

>>> p.avatar
<ImageFieldFile: None>
>>> p.avatar is None
False

我发现 ImageField 的名字是 u'',那么有没有更好的方法呢?

4

1 回答 1

80

我发现 ImageField 的名字是 u'',那么有没有更好的方法呢?

实际上,看起来这正是这个类的评估bool()方式,所以更好的方法是bool()通过调用来测试它if p.avatar

ImageFieldFile子类File,它定义:

def __nonzero__(self):
    return bool(self.name)

所以更好的方法确实是:

if not p.avatar:
   print "I don't exist"

bool(p.avatar) is False
于 2011-03-06T20:16:48.210 回答