Как проверить, что ImageField пуст - PullRequest
30 голосов
/ 06 марта 2011

У меня есть ImageField в моей модели, и когда я сохраняю его, я хочу проверить, если он отсутствует или нет.

В оболочке django я вызываю ImageField моего объекта, и он дает:

>>> p.avatar
<ImageFieldFile: None>
>>> p.avatar is None
False

Я обнаружил, что ImageField зовут u '', так есть ли лучший способ сделать это?

1 Ответ

64 голосов
/ 06 марта 2011

Я обнаружил, что имя ImageField у '', так есть ли лучший способ сделать это?

На самом деле, похоже, именно так этот класс оценивает bool(), поэтому лучший способ - просто проверить его bool(), вызвав if p.avatar

ImageFieldFile подклассов File, который определяет:

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

Так что лучший способ действительно есть:

if not p.avatar:
   print "I don't exist"

bool(p.avatar) is False
...