Django 如何检查ImageField是否为空

Django 如何检查ImageField是否为空,django,imagefield,Django,Imagefield,我的模型中有一个ImageField,当我保存它时,我想检查它是否为无 在django shell中,我调用对象的ImageField,它给出: >>> p.avatar <ImageFieldFile: None> >>> p.avatar is None False >>p.avatar >>>p.阿凡达是没有的 假的 我发现ImageField的名称是u“”,那么有更好的方法吗 我发现ImageField的名称是 那么有没有更好的方法呢

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

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

>>> p.avatar
<ImageFieldFile: None>
>>> p.avatar is None
False
>>p.avatar
>>>p.阿凡达是没有的
假的
我发现ImageField的名称是u“”,那么有更好的方法吗

我发现ImageField的名称是 那么有没有更好的方法呢 是吗

实际上,这个类的求值方式似乎就是这样的,因此更好的方法是通过调用
if p.avatar
来测试它的
bool()

ImageFieldFile
子类
File
,定义:

def __nonzero__(self):
    return bool(self.name)
因此,更好的方法确实是:

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

bool(p.avatar) is False

在模板上,您应该测试{%p.avatar!=''%}。丑陋,但它可以工作…没有必要,你可以简单地用
{%if p.avatar%}
<代码>{%endif%}