Django-FileField 检查是否为无

我有一个带有可选文件字段的模型

class MyModel(models.Model):
name = models.CharField(max_length=50)
sound = models.FileField(upload_to='audio/', blank=True)

我们来估个价吧

>>> test = MyModel(name='machin')
>>> test.save()

为什么是我?

>>> test.sound
<FieldFile: None>
>>> test.sound is None
False

如何检查是否有文件集?

31652 次浏览
if test.sound.name:
print "I have a sound file"
else:
print "no sound"

此外,当没有文件时,FileField的布尔值将为 False: 当 test.sound.name为 False 时,bool(test.sound) == False为 False。

根据这个 回答从一个不同的问题,你可以试试这个:

class MyModel(models.Model):
name = models.CharField(max_length=50)
sound = models.FileField(upload_to='audio/', blank=True)


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