2010-10-30 4 views
5

Salut J'ai une classe de forme qui ressemble à ci-dessous: -WTforms: Erreur "champ non présent"

class UserCreateForm(wtf.Form): 
    name=wtf.TextField('Name',validators=[validators.Required(),username_check]) 
    email=wtf.TextField('Email') 
    userimage=wtf.FileField(u'Upload Image',validators=[checkfile]) 

La fonction validateur personnalisé "checkfile" ressemble à ceci: -

def checkfile(form,field): 
    if field.data: 
     filename=field.data.lower() 
     ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg', 'gif']) 
     if not ('.' in filename and filename.rsplit('.',1)[1] in ALLOWED_EXTENSIONS): 
      raise ValidationError('Wrong Filetype, you can upload only png,jpg,jpeg,gif files') 
    else: 
     raise ValidationError('field not Present') # I added this justfor some debugging. 

Cependant Je trouve que même si je parcours un fichier dans le template et que click submit, il soulève toujours l'erreur "field not present". Je suis un peu confus ici. field.data est pas la bonne façon de vérifier la présence de noms de fichiers

Répondre

7

résolu ce problème finalement, a dû remplacer field.data dans le validateur avec field.file, puis accéder à ses attributs à l'aide field.file.filename.

+0

Vous devez marquer ceci comme la réponse acceptée. –

Questions connexes