44

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

django シェルで、オブジェクトの ImageField を呼び出すと、次のようになります。

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

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

4

1 に答える 1

80

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

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

ImageFieldFileFile以下を定義するsubclasses 。

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

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

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

bool(p.avatar) is False
于 2011-03-06T20:16:48.210 に答える