88 votes

Django - FileField vérifie si aucun

J'ai un modèle avec un champ de fichier optionnel

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

Mettons une valeur

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

Pourquoi j'obtiens ça ?

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

Comment puis-je vérifier s'il existe un ensemble de fichiers ?

129voto

AdamKG Points 6521
if test.sound.name: 
     print "I have a sound file"
else:   
     print "no sound"

De plus, la FieldFile sera Faux lorsqu'il n'y a pas de fichier : bool(test.sound) == False lorsque test.sound.name est faux.

1voto

Kirill Vladi Points 362

Selon cette réponse à une question différente, vous pouvez essayer ceci :

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

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X