Ответ 1
if test.sound.name: print "I have a sound file"
else: print "no sound"
Кроме того, FieldFile
логическое значение будет False, если нет файла: bool(test.sound) == False
, когда test.sound.name
является ложным.
У меня есть модель с необязательным файловым полем
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
Как проверить, есть ли файл?
if test.sound.name: print "I have a sound file"
else: print "no sound"
Кроме того, FieldFile
логическое значение будет False, если нет файла: bool(test.sound) == False
, когда test.sound.name
является ложным.
Я пробовал это и не работал. Для FileField, проверка is None
не работает, всегда возвращает значение False. Но, если у него нет связанного файла, test.sound.name
будет равно ''
(пустая строка), начиная с этого, можно проверить, имеет ли None или имеет файл.