Подтвердить что ты не робот

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

Как проверить, есть ли файл?

4b9b3361

Ответ 1

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

Кроме того, FieldFile логическое значение будет False, если нет файла: bool(test.sound) == False, когда test.sound.name является ложным.

Ответ 2

Я пробовал это и не работал. Для FileField, проверка is None не работает, всегда возвращает значение False. Но, если у него нет связанного файла, test.sound.name будет равно '' (пустая строка), начиная с этого, можно проверить, имеет ли None или имеет файл.