2012-01-13 5 views
38

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 

ファイルセットがある場合はどうすれば確認できますか? bool(test.sound) == Falsetest.sound.nameがfalsyです:何のファイルがありませんとき

答えて

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

また、FieldFileのブール値はFalseになります。

+0

どのブール値ですか? 'test.sound is False'を意味しますか? –

+0

'is' - test.soundは' False'と同じアイデンティティを持ちません。しかし、 'test.sound:print" yes "'、 'else:print" no "'はnoを出力します。 'bool(test.sound)'は 'False'でなければなりません。 – AdamKG

+11

+1: 'fieldFile.name'が偽であるとき、' bool(fieldFile) 'は' False'です。 – DzinX

関連する問題