2012-01-13 12 views
38

Mam modelu z opcjonalnym polu PlikDjango - FileField sprawdzić, czy Żaden

class MyModel(models.Model): 
    name = models.CharField(max_length=50) 
    sound = models.FileField(upload_to='audio/', blank=True) 

Postawmy wartość

>>> test = MyModel(name='machin') 
>>> test.save() 

Dlaczego mam takiego?

>>> test.sound 
<FieldFile: None> 
>>> test.sound is None 
False 

Jak mogę sprawdzić, czy plik jest ustawione?

Odpowiedz

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

Również wartość logiczna FieldFile „s będzie fałsz, gdy nie ma pliku: bool(test.sound) == False gdy test.sound.name jest falsy.

+0

Która wartość boolowska? Czy masz na myśli 'test.sound to False'? –

+0

Nie "jest" - test.sound nie będzie miał tej samej tożsamości co 'False'. Jednak 'if test.sound: print" yes "', 'else: print" no "' powinno wydrukować nie. 'bool (test.sound)' powinno być 'Fałszem'. – AdamKG

+11

+1: 'bool (fieldFile)' jest 'Fałszem' gdy 'fieldFile.name' jest falsy. – DzinX

Powiązane problemy