Django 如何检查ImageField是否为空
我的模型中有一个ImageField,当我保存它时,我想检查它是否为无 在django shell中,我调用对象的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的名称是 那么有没有更好的方法呢
>>> 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%}