Django - FileField检查是否

时间:2012-01-13 12:14:57

标签: python django django-models

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

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

如何检查是否有文件集?

2 个答案:

答案 0 :(得分:74)

if test.sound.name: print "I have a sound file"
else: print "no sound"

此外,FieldFile的布尔值在没有文件时为False:bool(test.sound) == Falsetest.sound.name为假时。

答案 1 :(得分:0)

根据另一个问题answer,您可以尝试以下操作:

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)