web-dev-qa-db-ja.com

ImageFieldが空であることを確認する方法

モデルにImageFieldがあり、それを保存するときに、Noneかどうかを確認したいと思います。

Django Shellで、オブジェクトのImageFieldを呼び出していますが、次のようになります。

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

ImageFieldの名前はu ''であることがわかりました。それで、それを行うためのより良い方法はありますか?

31
iva123

ImageFieldの名前はu ''であることがわかりました。それで、それを行うためのより良い方法はありますか?

実際には、このクラスがbool()を評価するのはまさにそのように見えるので、_if p.avatar_を呼び出してbool()をテストするのがより良い方法です。

ImageFieldFileサブクラスFileは、以下を定義します。

_def __nonzero__(self):
    return bool(self.name)
_

したがって、より良い方法は確かに次のとおりです。

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

bool(p.avatar) is False
_
64