2011-03-06 85 views
24

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

在Django壳,我打电话给我的对象的ImageField的,它给:

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

我发现的ImageField的名字是U“”,那么有没有更好的办法做到这一点?

回答

53

我发现的ImageField的名字是 U“”,那么,有没有更好的方式来做到 呢?

事实上,它看起来像这是该类究竟如何评估bool(),所以更好的方法是把它通过调用if p.avatar

ImageFieldFileFile,它定义bool()测试:

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

所以更好的方法确实是:

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

bool(p.avatar) is False